不打算讲得很细 我本人能看懂就行
现在客户端自动更新 一般要用到更新程序,这样就是两个项目,两个exe了 所以对我这来说比较反感
所以就选择了另外一种方法 cmd
由于是自动更新客户端 且是内置的
所以要关闭自身
但是cmd在process执行的时候 属于这个程序 如果关闭主线程这个线程也同样被终止了
所以我只能用外置bat来执行cmd了。
string b = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
这是获取本地文件路径 比如有快捷方式的。。你总不能让人家换个名字吧
这是要写入的cmd命令string.Format("taskkill /im \"BigcraftVersionUpdate.exe\"\r\nping 127.0.0.1 -n 2 >nul\r\ndel \"{0}\"\r\nrename \"{1}\" \"{2}\"\r\nstart {3}\r\ndel %0", b, "Bigcraft-1128046.exe", b.Substring(b.LastIndexOf("\\") + 1), b.Substring(b.LastIndexOf("\\") + 1))
string.Format("taskkill /im \"BigcraftVersionUpdate.exe\" //这是我的程序名字 是固定的
\r\n //cmd里面仅仅\n是不吃的 必须要\r\n才能换行
ping 127.0.0.1 -n 2 >nul \\由于结束程序有延时 所以我让他缓一会再进行后续操作
\r\n
del \"{0}\" //删除本地文件
\r\n
rename \&