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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# WINFORM的自动更新程序

發布時間:2023/12/18 C# 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# WINFORM的自动更新程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自動更新程序AutoUpdate.exe

https://git.oschina.net/victor596jm/AutoUpdate.git

1.獲取源碼?http://git.oschina.net/victor596jm/AutoUpdate 編譯成 AutoUpdate.exe,AutoUpdateLib.dll,并與你的主程序放在同一個目錄

2.配置文件 UpdateList.xml

? 此配置文件記錄要更新的文件列表,版本等信息。文件同時存在于服務器(IIS)和客戶端,當AutoUpdate.exe啟動時會根據客戶端的Updatelist.xml文件的節點<Url>獲取本次更新源(可以有Url,Url1,Url2,Url3節點,更新時會測速選擇最優的線路),然后下載服務器的UpdateList.xml文件與本地文件進行比較確定此次要更新的文件列表.執行更新后最終服務器的Updatelist.xml與客戶端的文件會保持一致.Updatelist.xml文件如下:

<?xml version="1.0" encoding="gb2312"?> <AutoUpdater><description>AutoUpdate</description><Updater><RootUrl>http://d1.domain.com:8765/vf/</RootUrl><RootUrl1>http://d1.domain.com:8765/vf/</RootUrl1><Url>http://update.domain.com:8765/vf/</Url> <!-- 客戶端使用這個地址作為更新源 --><NeedUpdate>YES</NeedUpdate>          <!-- 客戶端根據此設置是否要執行更新 --><RequiredVersion>8.8.0</RequiredVersion><Continue>YES</Continue><LastUpdateTime>2013-10-15</LastUpdateTime></Updater><Application applicationId="你的應用程序名稱"><EntryPoint>主應用程序名稱.exe</EntryPoint>  <!-- 自動程序會依據這個配置殺死主程序以便于執行更新后文件覆蓋 --><Location>.</Location><Version>2.05.111</Version>          <!-- 程序版本,注意更新程序不會依據此版本來獲取更新文件列表 --><MinVersion>2.01.144</MinVersion><VersionSort>Professional</VersionSort></Application><Files><File IsKeyUpt="1" Ver="2.0.2.27" Name="xxx.exe" /> <File IsKeyUpt="0" Ver="2.0.0.2" Name="CreateShortCut.exe" /><File IsKeyUpt="0" Ver="2.0.0.5" Name="UpdateJob.txt" RenameTo="UpdateJob.cmd" /><File IsKeyUpt="0" Ver="2.0.0.1" Name="SYNC\Sync.exe.config.xml" RenameTo="SYNC\Sync.exe.config" /></Files> </AutoUpdater>

說明:

(1). IsKeyUpt :是否關鍵更新 如果在更新過程中某關鍵更新文件未能下載成功,則會忽略本次更新

(2). Ver:記錄文件版本?

? ?客戶端版本小于服務器版本則會把文件加到更新列表中, 比如 服務端為 : 3.0.0.1,客戶端為 1.0.0.01 ,忽略'點'即 (3001<10001,這時文件不會更新,記得服務器版本要寫成 3.0.0.01 就可以了,如果覺得不妥你可以自己修改 ?)

(3). RenameTo: 文件名重命名 因為有些文件是無法從IIS下載的如 .bat,.cmd文件,這時你可以在服務端重命名為可更新的文件,客戶端更新后會根據設置自動改名

3.主程序應用集成自動更新程序

我的做法是:在主程序應用不帶參數執行的情況下要自動啟動AutoUpdate.exe來執行更新操作, 當更新程序發現如果可用的更新就自已退出;如果有則執行更新,在文件下載后更新程序會自動殺死主進程,然后覆蓋文件,在完成覆蓋文件后再以參數 /NOUPDATE啟動主進程

可以在 Main(string[] args) 嵌入以下代碼,先在主工程中引用 AutoUpdateLib.dll

//以下語句啟動自動更新功能
bool MainProgRunned = (clsPublic.ProgProcessCount("你的主應用應用.EXE") > 1);if ((null == Args || Args.Length == 0) && (!MainProgRunned)){try{Process proc = Process.GetCurrentProcess();string curProcess = proc.ProcessName.ToUpper();if (Common.AutoUpdateFunc.NeedUpdate && curProcess.IndexOf("VSHOST") < 0){new BIN.AutoUpdateFunc("UpdateList.xml")).InvokeAutoUpdate();}}catch (Exception ex){}}
Common.ProgRunned("AutoUpate.exe", true); //殺死自動更新程序             //啟動主界面

?另外,下載文件沒有加MD5檢驗

轉載于:https://www.cnblogs.com/victor596/p/4749968.html

總結

以上是生活随笔為你收集整理的C# WINFORM的自动更新程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。