原文連結:https://blog.csdn.net/g313105910/article/details/112313695
.NET程式當部署很多的時候,每次手動下載升級麻煩,原來自己寫了個自動升級的程式,獨立執行,需要主程式來更新自動升級程式,自動升級程式升級主程式,功能執行正常,最近發現有AutoUpdater.NET庫很方便,在此寫下使用方法,重要說一點,程式作為服務執行時無法使用,會崩潰,想更新服務請看下面連結
https://blog.csdn.net/g313105910/article/details/112366756
NuGet安裝Autoupdater.NET.Official
程式中只需要引入,並開啟更新2行程式碼即可,非常方便
using AutoUpdaterDotNET;
AutoUpdater.Start("http://10.0.0.7:7777/updates/AutoUpdater.xml");
http伺服器使用上篇文章中的apache伺服器
htdocs\updates目下新建AutoUpdater.xml和AutoUpdaterLoger.html,可以啟用強制更新,也可以關閉MD5效驗,關閉MD5的方法就是刪掉這一行的配置
<?xml version="1.0" encoding="UTF-8"?> <item> <version>1.0.0.4</version> <url>http://10.0.0.7:7777/downloads/NewAutoUpdater.zip</url> <changelog>http://10.0.0.7:7777/updates/AutoUpdaterLoger.html</changelog> <checksum algorithm="MD5">5D722E6F2CDECC2011CD31B4957C9AEE</checksum> <mandatory mode="2">false</mandatory> </item>
<html><body><h1>這是一個重要的更新,從1.0.0.0到1.0.0.1</h1></body></html>
htdocs\downloads目錄放入NewAutoUpdater.zip更新檔案,打包時不需要帶根資料夾
是不是很方便
更新完自動替換並執行
如果不想自動監測程式版本可以指定程式版本
//指定程式版本 AutoUpdater.InstalledVersion = new Version(version);
手動處理退出邏輯
AutoUpdater.ApplicationExitEvent += AutoUpdater_ApplicationExitEvent;
private static void AutoUpdater_ApplicationExitEvent() { Console.WriteLine("關閉!"); Thread.Sleep(5000); Process.GetCurrentProcess().Kill(); }