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文件和是否自动关闭更新窗体.