Ant是基於Beetle實現開源的自動更新工具,主要包括三大部分:網絡文件服務,文件更新管理和客戶端更新組件.
- 網絡文件服務
服務端主要用於文件管理,包括文件上傳和下載。服務在開啟的時候必須生成rsa證書,主要是用於管理端更新文件時進行一個有效性驗證.
- 文件更新管理
文件管理端是用於管理更新的文件,必須把服務端生成的private key放到管理端目錄下才能有效驗證.Ant的更新允許目錄結構更新,所以Client更新的時候如果本地沒有相關目錄結構文件時會自動根據需要進行創建。Ant的文件更新也沒有采用版本號作為更新標記,只要管理端更新了對應的文件就會生成一個新的GUID值,Client在更新的時候比較對應的GUID不對應就會更新相應的文件。
- 客戶端更新組件
自動更新程序是一個Exe文件,放在程序對應就的目錄下組件提供相關對象方法來檢測更新源。
- 程序使用組件
在使用之前必須你的程序的配置文件里添加.
<configuration> <configSections> <section name="beetle" type="Beetle.ConfigSelection, Beetle"/> <section name="antUpdateSection" type="Ant.Component.AntUpdateSection, Ant.Component"/> </configSections> <beetle Connections="10" Pools="1" SocketSendThreads="1" SocketReceiveThreads="1" SocketThreadSleep="10" WorkThreads="1" WorkThreadSleep="10" SendBufferSize="8048" ReceiveBufferSize="8048" PackageMaxSize="120000" StringEncodingSize="64000" ChannelMaxQueueData="0" ExecutionContext="False" TimeOut="30" Statistics="True"/> <antUpdateSection xmlns="urn:Ant.Component" host="127.0.0.1" port="9560"> </antUpdateSection> </configuration>
配置信息有兩項,一項是beetle的配置信息,另一項就是配置Ant更新信息主要包括更新服務的IP地址或域名和端口.使用的時候引用Ant.Component.Dll組件然后在主窗體里使用如下代碼:
private void Form1_Load(object sender, EventArgs e) { Updater update = new Updater(); if (update.Detect()) { Close(); update.Update("Ant.Update.Test.exe", true); } }
以上代碼主要是創建一個updater對象,然后檢測服務端的更新信息檢測是否存在更新,如果存在則調用Update方法即可,Update的參數分別為更新后執行的.exe文件和是否自動關閉更新窗體.