日期:2014-05-17  浏览次数:21223 次

winform 更新程序 跟主程序问题
小弟写了一个项目里面用到了更新程序 在Program中用到了这个 Application.SetCompatibleTextRenderingDefault(false);
            //先检查是否更新
            frmUpdate fu = new frmUpdate();
            fu.checkUpdate();
            if (fu.availableUpdate > 0)
            {
                fu.ShowDialog();
            }
            //网络验证
            frmCheck fc = new frmCheck();   如果availableUpdate中的值>0则表示要更新,现在就是我更新完成后要先重启该程序,在frmUpdate中 try
            {
                foreach (Process p in Process.GetProcessesByName("LazyTao.exe"))
                {
                    p.Kill();
                }
                //将临时目录下的下载文件复制到当前跟目录(即工作目录下)并删除临时目录
                CopyFile(tempUpdatePath, Directory.GetCurrentDirectory());
                System.IO.Directory.Delete(tempUpdatePath, true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
            //启动主程序
            if (this.isRun==true)
            {
                Process.Start(mainAppExe);
            }
会提示错误LazyTao.exe在另一个程序中运行  该怎么解决?

------解决方案--------------------
http://msdn.microsoft.com/zh-cn/library/het2hs40(v=vs.110).aspx

Kill  方法将异步执行。 在调用 Kill 方法后,请调用 WaitForExit 方法等待进程退出,或者检查 HasExited 属性以确定进程是否已经退出。