首先程序exe自己下载覆盖自己肯定是不行的,会报“当前程序正在被另一个进程所使用”的系统错误,其实解决的方法很简单,提供个思路给你,具体实现的话你自己去试试吧。
在进程中的程序不能覆盖自己,但是可以重命名,你从远程下载一个新的exe文件,重命名为xxx.exe.tmp,待下载完毕后,把旧的exe重命名一下,比如xxx.exe.old,然后把新的xxx.exe.tmp重命名为xxx.exe,重命名的方法:System.IO.File.Move(filepath + ".tmp", filepath);然后重启程序Application.Restart();在form_Load事件里面判断一下
if (System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"xxx.exe.old"))
System.IO.File.Delete(AppDomain.CurrentDomain.BaseDirectory + @"xxx.exe.old");
这样就可以了,如果做的再好点的话,可以把xxx.exe.old的文件属性设置为隐藏就好了,希望可以帮你解决你的问题,呵呵
自己不能拷贝文件来覆盖自己,需要一个更新程序.
2应该是,启动更新程序,同时退出.更新程序完成后,启动主程序.
都关了 你还让他 做替换操作 这不欺负人吗
只能再开一个 开的这个关闭,替换,打开,关闭自己
用 任务计划 试试。