開源的.NET桌面程序自動更新組件 ——Sharp Updater 2.1發布


    SharpUpdater是一個基於.net Framework,將自動更新功能添加到您的windows桌面程序的引導程序。從2.0版本起,它也是一個解決方案,增加了一個示例服務端,提供了一組API供開發人員擴展。

 
一、工作原理
 
    Updater.exe 從服務端下載最新版本的發布清單配置文件,同本地發布清單進行比較,如果發現本地版本落后,則從服務端下載差異文件,覆蓋到本地, 然后啟動主程序。
 
二、服務端配置
 
    以IIS7.5為例
    1、新建一個IIS站點。
    2、禁用*.dll程序處理映射,以允許dll文件下載。
         
   3、在此站點下創建桌面程序子目錄,如~/demo/。
 
三、客戶端配置
 
      1、包括或引用SharpUpdater.Util.dll/Updater.exe,如果需要用到zip格式更新包,還需要包括ICSharpcode.SharpZipLib.dll/CnSharp.ZipUtil.dll
    
    2、主程序入口增加對Updater的互操作代碼
       
private static void Main(string[] args)
    {
            if (args.Length == 0)
            {
                Process.Start("updater.exe");
                Application.Exit();
                return;
            }
            if (!args[0].StartsWith("ok"))
            {
                Application.Exit();
                return;
            }
 
 
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
 
四、打包發布
 
    1、SharpPack
         SharpPack是一個VS2010擴展,用於生成WinForm程序並發布清單
 
 首先安裝VS擴展,將SharpPack.7z解壓縮后copy 到 C:\Users\[username]\Documents\Visual Studio 2010\Addins 下就可以了。
啟動VS,打開項目。
右擊WinForm項目,選擇Package and Publish命令
        
設置Assembly版本號

挑選需要發布的文件,填寫Release List相關字段
    
2、將bin目錄下生成的ReleaseList.xml和1.0.0.0文件夾上傳到服務端的~/Demo/下
 
 
 
五、可擴展性
 
1、Updater的擴展
    1)實現 CnSharp.Windows.Updater.Util.UpdateProxy.IUpdateProxy
      在SharpUpdater的源代碼中,我們沒有實現此接口,參見CnSharp.Windows.Updater/Common.cs/Ln.14。因此默認情況下只顯示待更新版本當前版本的更新日志;假設用戶從V1.0升級到V1.4,則只能看到V1.4的更新日志,看不到V1.1~V1.3的。開發人員可自行實現它。
    2)SharpUpdater源碼基於MIT協議,你可以自由修改。
 
2、SharpPack的擴展
     1)基類:  CnSharp.Windows.Updater.SharpPack.Connect
          提供了一組protected virtual方法,你可以重寫它們自定義UI或操作。
     2)接口: IVersionControl
         此接口幫助你簽出 AssemblyInfo.cs 以修改版本號。默認實現了TFS,你可以自行實現其他版本控制工具如SVN。
 
六、開源
 
 


免責聲明!

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



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