龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

推荐C#开发桌面自动更新程序(服务端与客户端)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
本文以小型应用的通用性自动更新程序,开发的程序可以直接拿过来使用,非常方便。 原理 服务器端的结构是这样的: 其工作原理如下: Update.asmx仅提供一个功能,就是检测是否需要

本文以小型应用的通用性自动更新程序,开发的程序可以直接拿过来使用,非常方便。

原理

服务器端的结构是这样的:

image

其工作原理如下:

Update.asmx仅提供一个功能,就是检测是否需要更新,在需要更新的时候就返回一个更新地址,通常情况下返回的地址就是Download.ashx,而在某些特殊情况下,也可以修改服务端使之从其他Url提供更新下载。检测是否需要更新的的具体做法是:首先获取Updata目录中的主程序版本号,再获取数据库中的最新版本号,两者对比。如果相同则直接与客户端提供的版本号相对比并返回结果;如果不同则将主程序版本号写入数据库,然后生成新的更新文件包,直接向客户端返回更新地址。

Download.ashx的功能仅仅是将最新版本更新文件包输出。

而客户端部分包含主程序、Update.exe以及其他附属文件,更新时由主程序检测并下载更新,在主程序退出时,如有更新并已成功下载,则调用Update.exe完成解包及更新覆盖工作。需注意的是:Update.exe永远不能被更新,因为它无法更新其自身,所以服务端更新时也不要将Update.exe纳入更新包。


精彩图集

赞助商链接