SharpUpdater:開源的.NET桌面程序自動更新組件


SharpUpdater開源了!
http://sharpupdater.codeplex.com/

簡  介

SharpUpdater是一個開源的.NET Windows桌面程序自動更新的組件。它提供一個啟動程序在主程序啟動時檢測最新版本並升級。此外,還提供了一個VS插件生成配置清單。

 

工作原理

依賴於一個發布清單的XML配置文件(我們稱之為ReleaseList),通過對比客戶端和服務端的ReleaseList,計算出需要更新的文件,然后逐一下載覆蓋本地客戶端程序文件或資源文件。

配置文件示例:

<ReleaseList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <ApplicationStart>demo.exe</ApplicationStart>
   <AppName>Demo</AppName>
   <MinVersion>1.0.0.0</MinVersion>
   <ReleaseDate>2011/9/23 9:25:24</ReleaseDate>
   <ReleaseUrl>http://host/demo/</ReleaseUrl>
   <ReleaseVersion>1.1.0.0</ReleaseVersion>
   <ShortcutIcon>demo.ico</ShortcutIcon>
   <UpdateDescription><![CDATA[1.new feature
   2.updte
3.bug fix]]></UpdateDescription>
   <Files>      
      <ReleaseFile>
         <FileName>log4net.dll</FileName>
         <ReleaseDate>2011/8/19 9:04:38</ReleaseDate>
         <FileSize>182</FileSize>
      </ReleaseFile>      
      <ReleaseFile>
         <FileName>Demo.exe</FileName>
         <ReleaseDate>2011/9/23 9:25:21</ReleaseDate>
         <FileSize>1798</FileSize>
      </ReleaseFile>
   </Files>
</ReleaseList>

效果圖

 

ReleaseList Builder

這是一個VS插件,執行編譯並根據Build出的文件一鍵生成發布清單。

VS addin screenshot  

 

后  記

2009年,在為某電商企業做項目時發現ClickOnce存在一個嚴重的缺陷——當網絡狀態不好時(如丟包),更新失敗后不能回滾,重啟程序也不能,只能卸裝重裝。為了解決此問題,於當年春節開發了此組件。后應用於多個項目,效果良好。

當前穩定版本為1.0。

開發計划:

V2.0
增加zip壓縮發布方式
增加后台下載更新包,下一次啟動時安裝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM