C#自动更新,主程序将自己删除~~怎么实现? 5
我现在就是已经实现将更新的.xml文件和.exe文件下载到当前应用程序执行目录下的temp(临时目录),我现在就是像将这俩文件替换掉当前应用程序并重新启动,如何实,就是主...
我现在就是已经实现将更新的.xml文件和.exe文件下载到当前应用程序执行目录下的temp(临时目录),我现在就是像将这俩文件替换掉当前应用程序并重新启动,如何实,就是主程序如何删除自己,采用多线程如何实现~~
展开
6个回答
展开全部
主程序自己删除不了自己,在运行着也不能被别人删除,那么需要怎么做呢!
给你一个思路:
1.你的主程序和你的更新程序需要是两个不同exe。就是说你的主程序和更新程序不是一起的。需要单独做一个更新程序。然后放到主程序目下,供调用。
2.在主程序启动时或者手动执行更新,更新之前需要判断是否有更新。
3.如果有更新,那么这个时候下载更新。(下载更新,可以在主程序也可以在更新程序做,最好由更新程序做)
4.下载好之后,启动 更新程序exe。
启动更新程序的方法 Process.Start("D:\\我的更新程序.exe"); //这里可以参数
启动之后,当前主程序Application.Exit()。
5.更新程序,进行更新操作(下载到临时目录的dll等文件,复制并覆盖到你的主程序目下)
6.更新完成。关闭更新程序,自动启动 主程序。
启动主程序的方法 Process.Start("D:\\我的程序.exe");
当前更新程序Application.Exit()。
7.这就可以实现更新完成了。并且启动了更新后的主程序。
具体实现就看你了。不明白在问把。
给你一个思路:
1.你的主程序和你的更新程序需要是两个不同exe。就是说你的主程序和更新程序不是一起的。需要单独做一个更新程序。然后放到主程序目下,供调用。
2.在主程序启动时或者手动执行更新,更新之前需要判断是否有更新。
3.如果有更新,那么这个时候下载更新。(下载更新,可以在主程序也可以在更新程序做,最好由更新程序做)
4.下载好之后,启动 更新程序exe。
启动更新程序的方法 Process.Start("D:\\我的更新程序.exe"); //这里可以参数
启动之后,当前主程序Application.Exit()。
5.更新程序,进行更新操作(下载到临时目录的dll等文件,复制并覆盖到你的主程序目下)
6.更新完成。关闭更新程序,自动启动 主程序。
启动主程序的方法 Process.Start("D:\\我的程序.exe");
当前更新程序Application.Exit()。
7.这就可以实现更新完成了。并且启动了更新后的主程序。
具体实现就看你了。不明白在问把。
展开全部
主程序自己删除不了自己,在运行着也不能被别人删除,那么需要怎么做呢!
给你一个思路:
1.你的主程序和你的更新程序需要是两个不同exe。就是说你的主程序和更新程序不是一起的。需要单独做一个更新程序。然后放到主程序目下,供调用。
2.在主程序启动时或者手动执行更新,更新之前需要判断是否有更新。
3.如果有更新,那么这个时候下载更新。(下载更新,可以在主程序也可以在更新程序做,最好由更新程序做)
4.下载好之后,启动 更新程序exe。
启动更新程序的方法 Process.Start("D:\\我的更新程序.exe"); //这里可以参数
启动之后,当前主程序Application.Exit()。
5.更新程序,进行更新操作(下载到临时目录的dll等文件,复制并覆盖到你的主程序目下)
6.更新完成。关闭更新程序,自动启动 主程序。
启动主程序的方法 Process.Start("D:\\我的程序.exe");
当前更新程序Application.Exit()。
7.这就可以实现更新完成了。并且启动了更新后的主程序。
具体实现就看你了。不明白在问把。
给你一个思路:
1.你的主程序和你的更新程序需要是两个不同exe。就是说你的主程序和更新程序不是一起的。需要单独做一个更新程序。然后放到主程序目下,供调用。
2.在主程序启动时或者手动执行更新,更新之前需要判断是否有更新。
3.如果有更新,那么这个时候下载更新。(下载更新,可以在主程序也可以在更新程序做,最好由更新程序做)
4.下载好之后,启动 更新程序exe。
启动更新程序的方法 Process.Start("D:\\我的更新程序.exe"); //这里可以参数
启动之后,当前主程序Application.Exit()。
5.更新程序,进行更新操作(下载到临时目录的dll等文件,复制并覆盖到你的主程序目下)
6.更新完成。关闭更新程序,自动启动 主程序。
启动主程序的方法 Process.Start("D:\\我的程序.exe");
当前更新程序Application.Exit()。
7.这就可以实现更新完成了。并且启动了更新后的主程序。
具体实现就看你了。不明白在问把。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可能同步实现,要设计为异步的。
1、更新和主程序的exe是两个exe
2、主程序启动时,检测有没有更新,有的话,打开更新exe,关掉自己
ps,此处,需要判断更新exe是否有新版本,如果有,则下载新的,覆盖更新exe(此时可以成功,因为个更新exe没有启动)
3、执行更新(此时如果主程序exe有变化,可以覆盖成功,因为它没启动)
1、更新和主程序的exe是两个exe
2、主程序启动时,检测有没有更新,有的话,打开更新exe,关掉自己
ps,此处,需要判断更新exe是否有新版本,如果有,则下载新的,覆盖更新exe(此时可以成功,因为个更新exe没有启动)
3、执行更新(此时如果主程序exe有变化,可以覆盖成功,因为它没启动)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主程序删除自己?我的理解应该是说,先对比,然后把要更新的程序集和其它信息更新下来,然后再启动程序。你想的删除自己应该是退出更新程序,启动应用程序吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
做一个升级的程序,在详细这里写不下了。 检测到更新,下载下来。然后用你写的更新程序kill主程序。然后替换文件,在启动主程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询