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