本文以小型應用的通用性自動更新程序,開發的程序可以直接拿過來使用,非常方便。
其工作原理如下:
Update.asmx僅提供一個功能,就是檢測是否需要更新,在需要更新的時候就返回一個更新地址,通常情況下返回的地址就是Download.ashx,而在某些特殊情況下,也可以修改服務端使之從其他Url提供更新下載。檢測是否需要更新的的具體做法是:首先獲取Updata目錄中的主程序版本號,再獲取數據庫中的最新版本號,兩者對比。如果相同則直接與客戶端提供的版本號相對比並返回結果;如果不同則將主程序版本號寫入數據庫,然后生成新的更新文件包,直接向客戶端返回更新地址。
Download.ashx的功能僅僅是將最新版本更新文件包輸出。
而客戶端部分包含主程序、Update.exe以及其他附屬文件,更新時由主程序檢測並下載更新,在主程序退出時,如有更新並已成功下載,則調用Update.exe完成解包及更新覆蓋工作。需注意的是:Update.exe永遠不能被更新,因為它無法更新其自身,所以服務端更新時也不要將Update.exe納入更新包。
具體見附件