日期:2014-05-18  浏览次数:20741 次

怎样从网上下载一个程序,然后删除自身,替换成新版本程序?
哪位知道?

具体的说就是电脑上已经有一个程序c:\windows\abc.exe,让这个程序自动把http://www.aaaaa.com/abc.exe,下载到本机,然后,替换旧的程序,达到更新的目的

哪位知道?

------解决方案--------------------
实现自动更新需要在服务器上建立一个xml文档,这个文档中包含程序集所有文件的最新版本信息。

本地也有一个xml文档,启动程序时会和服务器上的xml文档进行比较,如果发现有新的版本,就从服务器上下载并替换原有文件。
------解决方案--------------------
这种更新可以使用另一个应用程序来判断是否有新版本,如果有使用这个应用程序进程下载更新,然后删除老版本的程序,启动新程序
------解决方案--------------------
程序运行的时候不能删除自己(除非用一些Hack手段),但是可以合法改名字。

因此我想你应该有思路了。
------解决方案--------------------
App当检测到有新版本需要更新时,下载一个Uploader,启动Uploader并结束自身进程;

Uploader负责下载最新的App,并安装和运行此新版本的App,然后结束自身进程;

新版本的App在运行起来之后,检测有无Uploader的存在,如果存在,待Uploader的进程结束后,删除Uploader


------解决方案--------------------
不是程序自己删除自己。打开程序时不直接打开程序本身,而运行一个更新程序去执行这些操作。如果有新版本的程序就下载并覆盖老版本的程序。如果没有就直接执行程序。
------解决方案--------------------
1. exe自身通过注入是可以做到自身删除
2. 如果不考虑远程注入,还有很多技巧性的东西,你可以参考一下nuget的代码,其实reflector做的也很好
nuget.codeplex.com
------解决方案--------------------
服了你们了
不是HOOK
就是注入
还有更复杂的吗?
不知道使用bat文件这种情况易用的小技术吗?
------解决方案--------------------
http://www.370b.com

http://www.370b.com/mydesktop/update.xml
上面的xml不知对你是否有帮助
------解决方案--------------------
学习,谢谢
------解决方案--------------------
探讨

服了你们了
不是HOOK
就是注入
还有更复杂的吗?
不知道使用bat文件这种情况易用的小技术吗?