我为我的程序做了一个自动升级功能。主程序为servicepj.exe 升级升级程序为update.exe
当主程序启动时检查服务器的程序版本,如服务器版本比本机新就弹出升级程序提示升级文件下载完毕后作更新操作,我的操作时这样的:
1,升级程序先检查主程序时候在运行,如果在进程中找到主程序的进程,就关闭它,
   Process[] pra = Process.GetProcesses();
                    foreach (Process pro in pra)
                    {
                        if (pro.ProcessName.ToLower().StartsWith("servicepj"))
                        {
                            pro.Kill();
                            pro.Close();
                        }
                    }
                    Thread.Sleep(3000);
2,拷贝下载的新版本的程序到主程序目录(覆盖形式)
    File.Copy(Application.StartupPath + @"\tmp\新文件", Application.StartupPath + "\\新文件" ), true);问题就出在上面这句,会提示主程序由另一进程正在调用,无法操作。请高手指点!