生活随笔
收集整理的這篇文章主要介紹了
SimpleUpdater.NET
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本類庫+工具用于快速實現一個簡單的自動更新程序,旨在快速簡單地為現有的.Net應用程序添加上比較簡單的自動更新功能。
本頁包含以下內容
- 概述
- 整個自動升級工作的流程
- 更新包生成工具
- 發布更新包
- 為應用程序添加自動更新功能
- 結束
概述[導航]
本類庫+工具用于快速實現一個簡單的自動更新程序,可以簡單地完成小型應用程序的快速更新。
整個工具分成兩部分,一部分是供用戶使用的類庫,一部分是用于生成更新包的工具。
基于 .Net 3.5 開發,原則上最好安裝有此版的 .netFramework。特殊情況下,可以僅安裝 .Net Framework 2.0SP1,發布的時候附帶上 System.Core.dll 即可正常運行。
整個自動升級工作的流程[導航]
更新包生成工具[導航]
作為一個簡單的升級需求,不需要很復雜的設置。
?
需要填寫如下信息:
應用程序名當前的版本(也就是更新后的版本)發布地址可選(如果填寫了,在更新提示框上會有個鏈接可以鏈接到這個網址)新程序目錄(選擇最新版本程序的發布目錄,在版本 1.5.0.0 之后你可以直接從資源管理器中拖放目標文件夾到目錄的文本框來快速選擇了!)升級包路徑:選擇一個路徑用來保存升級包(*.zip),同時自動更新信息 *.xml 也會保存在這個目錄下更新前執行:在下載完成、即將安裝更新前會執行這里選擇的程序。這里有點BUG一旦選擇了就不能取消,所以請注意下;更新后執行:在安裝完成后、即將退出前執行的操作。需要注意的BUG同上。通常選擇需要運行的主程序。執行時間限制:用于限制6中選擇的程序的執行時間,超過設置的時間后進程將會被強行結束。更新說明:用于提示更新的時候顯示的文本消息內容。創建:按照填寫的信息生成升級包打開:打開一個已有的升級信息文件,用于下次更新版本時直接修改信息即可,其它的不需要變化(在1.5.0.0之后,你可以通過直接拖放以前保存的升級XML文件到窗體上直接打開了!)。 ?
選項頁面
- 更新時刪除原始文件:默認情況下僅覆蓋新文件。但是你可以設置更新之前刪除應用程序目錄所有文件,或刪除指定文件。
- 支持更新的最低版本:指定支持更新的最低版本,低于此版本的軟件將會提示手動更新
- 升級文件包密碼:可以設置一個密碼,用來加密生成的壓縮包
發布更新包[導航]
更新包應該發布到服務器上。生成的文件有兩個,一個是壓縮包(*.zip),一個是信息文件(*.xml),兩個應該一起發布。這里假定通過網址?http://ls.com/update.xml?能訪問到生成的?update.xml?文件。
為應用程序添加自動更新功能[導航]
注意:自動升級程序取當前程序文件的版本,是以當前運行的程序集版本作為識別依據的。
首先在VS中為當前的主程序項目添加引用,引用“客戶端”中的“SimpleUpdater.exe”。
在VS中,點開“解決方案管理器”中相應項目的“屬性”節點,打開?AssemblyInfo.cs?文件,在最下面添加上一行自動更新聲明:
//--添加這行標記表示支持自動更新,?后面的網址為自動更新的根目錄.[assembly:?FSLib.App.SimpleUpdater.Updateable("http://ls.com/update.xml")] 這步是必須的,否則請求檢查更新時會拋出異常;代碼中的網址即上面提到的能訪問到xml文件的網址。
如果您希望更加簡單的使用而不用去加這樣的屬性,或者您想程序運行的時候自定義,您可以通過下列方式的任何一種方式取代上面的屬性聲明:
- 使用?FSLib.App.SimpleUpdater.Updater.CheckUpdateSimple("升級網址")?的重載方法。這個重載方法允許你傳入一個升級包的地址;
- 在檢查前手動設置 FSLib.App.SimpleUpdater.Updater.UpdateUrl 屬性。這是一個靜態屬性,也就是說,您并不需要創建 FSLib.App.SimpleUpdater.Updater.UpdateUrl 的對象實例就可以修改它。
無論使用哪種方式,請確保在檢查更新前,地址已經設置。
到這里,準備工作即告完成,為代碼添加上檢查更新的操作即可。
static?class?Program{????///?<summary>????///?應用程序的主入口點。????///?</summary>????[STAThread]????static?void?Main()????{????????Application.EnableVisualStyles();????????Application.SetCompatibleTextRenderingDefault(false);?????????var?updater?=?FSLib.App.SimpleUpdater.Updater.Instance;?????????//當檢查發生錯誤時,這個事件會觸發????????updater.Error?+=?new?EventHandler(updater_Error);????????//沒有找到更新的事件????????updater.NoUpdatesFound?+=?new?EventHandler(updater_NoUpdatesFound);????????//找到更新的事件.但在此實例中,找到更新會自動進行處理,所以這里并不需要操作????????//updater.UpdatesFound?+=?new?EventHandler(updater_UpdatesFound);?????????//開始檢查更新-這是最簡單的模式.請現在?assemblyInfo.cs?中配置更新地址,參見對應的文件.????????FSLib.App.SimpleUpdater.Updater.CheckUpdateSimple();?????????/*?????????*?如果您希望更加簡單的使用而不用去加這樣的屬性,或者您想程序運行的時候自定義,您可以通過下列方式的任何一種方式取代上面的屬性聲明:?????????*?使用Updater.CheckUpdateSimple?的重載方法。這個重載方法允許你傳入一個升級包的地址;?????????*?在檢查前手動設置?FSLib.App.SimpleUpdater.Updater.UpdateUrl?屬性。這是一個靜態屬性,也就是說,您并不需要創建?FSLib.App.SimpleUpdater.Updater.UpdateUrl?的對象實例就可以修改它。?????????*/?????????FSLib.App.SimpleUpdater.Updater.CheckUpdateSimple("升級網址");????????????????Application.Run(new?Form1());????}?????static?void?updater_UpdatesFound(object?sender,?EventArgs?e)????{?????}?????static?void?updater_NoUpdatesFound(object?sender,?EventArgs?e)????{????????System.Windows.Forms.MessageBox.Show("沒有找到更新");????}?????static?void?updater_Error(object?sender,?EventArgs?e)????{????????var?updater?=?sender?as?FSLib.App.SimpleUpdater.Updater;????????System.Windows.Forms.MessageBox.Show(updater.Exception.ToString());????}} 結束[導航]
詳細的代碼請參考附帶的示例項目。
檢查到更新時窗口如下:
?
這之后的更新操作都是全自動執行的,不需要在主程序中有任何其它操作。
https://www.fishlee.net/soft/simple_autoupdater/usage.html
總結
以上是生活随笔為你收集整理的SimpleUpdater.NET的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。