本文以小型应用的通用性自动更新程序,开发的程序可以直接拿过来使用,非常方便。
原理
服务器端的结构是这样的:
其工作原理如下:
Update.asmx 仅提供一个功能,就是检测是否需要更新,在需要更新的时候就返回一个更新
地址,通常情况下返回的地址就是 Download.ashx,而在某些特殊情况下,也可以修改服务
端使之从其他 Url 提供更新下载。检测是否需要更新的的具体做法是:首先获取 Updata 目
录中的主程序版本号,再获取数据库中的最新版本号,两者对比。如果相同则直接与客户
端提供的版本号相对比并返回结果;如果不同则将主程序版本号写入数据库,然后生成新
的更新文件包,直接向客户端返回更新地址。
Download.ashx 的功能仅仅是将最新版本更新文件包输出。
而客户端部分包含主程序、Update.exe 以及其他附属文件,更新时由主程序检测并下载更
新,在主程序退出时,如有更新并已成功下载,则调用 Update.exe 完成解包及更新覆盖工
作。需注意的是:Update.exe 永远不能被更新,因为它无法更新其自身,所以服务端更新
时也不要将 Update.exe 纳入更新包。
下面就是来实际编写一个自动更新解决方案:
服务器端
首先建立一个 Web 服务项目,项目名为“自动更新服务”:
- 1
- 2
前往页