日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

SimpleUpdater.NET

發(fā)布時間:2024/9/20 asp.net 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)容還不錯,歡迎將生活随笔推薦給好友。