分享一個自己寫的簡單的自動更新插件


自動更新插件通常需要三部分

1.配合需要升級的程序的一個dll

2.自動升級程序

3.打包程序

第一部分 配合主程序的dll

在這個升級程序中我將配合主程序用來校驗版本號的代碼封裝在AutoUpdateHelper中,主要包括兩個函數,一個是檢查版本並自動更新CheckAndUpdate,一個是用來獲取當前的版本號GetVersion

第二部分 自動升級程序

升級程序主要的步驟:

1.根據本地的update.xml中的manifest文件的遠程地址下載manifest文件

2.根據本地的version和遠程manifest中的version校對

3.如果版本不一致,下載manifest中的webpath+版本號.zip文件

4.解壓,覆蓋原文件

5.根據manifest中配置的exepath,重新啟動對應的主程序

第三部分 打包程序

由於自動更新程序和主程序是在同一路徑下,因此發布新版本打包的時候需要把自動更新程序相關的exe,dll去掉,防止自動更新程序覆蓋原文件的時候,出現文件占用的錯誤

因此,將項目文件過濾一下,然后執行zip打包。之后將新版本的包提交到服務器上,將服務器的manifest文件,進行相應版本的修改。

 

使用說明 

項目地址 github點擊下載

1.首先將AutoUpdate.exe和DotNetZip.dll(用了第三方的解壓縮)   和AutoUpdateHelper.dll(主程序調用的dll)和update.xml(本地記錄版本號)

拷貝到主程序的目錄下

2.在主程序中加入校驗代碼

try
            {
                if (AutoUpdateHelper.AutoUpdate.CheckAndUpdate())
                {
                    Environment.Exit(0);
                }
            }
            catch(Exception e)
            {
                MessageBoxEx.Show("網絡異常~~~趕緊檢查一下吧……");
                Environment.Exit(Environment.ExitCode);
            }

3.修改update.xml

<?xml version="1.0" encoding="utf-8" ?>
<localconf>
  <version>1.0</version>
  <manifest>http://www.xxx.com/mainfests.xml</manifest>
  <update>AutoUpdate.exe</update>
</localconf>

4.將manifests.xml修改 並且放到update.xml中manifest對應的遠程地址上

<?xml version="1.0" encoding="utf-8" ?>
<manifest>
  <!--版本號,無格式要求,更新時需要修改-->
  <version>1.1</version>
  <description>更新說明</description>
  <!--啟動程序的名稱-->
  <exepath>味來外賣客戶端.exe</exepath>
  <webpath>http://www.xxx.com/update/</webpath>
</manifest>

5.將與manifests.xml中對應版本好的包上傳到manifests.webpath配置的遠程路徑下,例如1.1.zip文件,放到 http://www.xxx.com/update/目錄下

大功告成~~~

 

程序的部分截圖

自動更新程序

打包程序

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM