2分钟实现桌面程序的自动更新
最近监测司CS项目有个实现自动更新的需求。Google了一下感觉使用QUpdater组建实现最为便捷。
这个组建从这里下载:http://www.qupdater.com/cn/index.php
此组件用VC编写,对实现语言没有限制。免费版支持同时下载2个文件,每个文件1个线程。收费版最高支持同时下载8个文件每个文件8个线程,以达到最大的更新速度。
用法很简单,下载安装后在安装目录的QHelper.pdf说明中写得很清楚。这里只做简单说明,有兴趣的可以找我讨论。
1.拷贝下面的5个文件到你项目的bin目录

2.建立一个网站,并将下面的文件及你要更新的文件放在网站中,使得从URL可以正常获得你的文件

3.修改qupdater.xml文件中的内容,其中var是这个文件的版本号,path是待下载的最新文件。
<files>
<!--action:1run,2delete,4register,8reboot-->
<file ver="20110312" path="UpdaterDemo.exe" />
<file ver="20110312" path="UpdaterDemo.Core.dll" />
</files>
4.拷贝安装目录中Example中的C#目录的UpdateHelper.cs文件进你的项目(此处以C#为例,伟大的Javaer们可以仿照这个C#代码写自己Java版UpdateHelper),项目中我是按下面这么干的,具体项目中怎么调用你懂的:)

4.验证,运行项目收到更新提示对话框,QUpdater自动更新你的文件。如果不行,把你的bin文件中的qupdater.xml中的各个文件的ver改的小一些。更新后的程序会弹出提示"更新后的程序!"
下面说说原理和注意事项:
qupdater其实就是对比你本地的和服务器上的qupdater.xml中的各个文件的ver属性。决定是否下载更新。
bin下面的qupdater.ini是它的参数配置文件,其中全部参数都在QHelper.pdf中有详细说明。用前移动要看,其中最重要的就是
[UPDATEINFO] ListURL=http://218.249.92.39/AutoUpdateTest/qupdater.xml 这个是它取对比文件的链接,也是你的更新程序的来源。其它的还有文件压缩,提示模式等配置需要查看QHelper.pdf这里就不再多提了。
实例项目我放在代码,大家可以参考。