起因: 一直都想给客户端程序实现自动升级功能,在同事尝试了 AutoUpdater.NET 并制作了 Demo 后,我又横向对比了 Squirrel.WindowsWinSparkleNAppUpdate ,最终还是选择了 AutoUpdater.NET。

优势

AutoUpdater.NET 相较同类工具的优势:

  • 上手简单,配置项简洁
  • 作者更新维护比较积极

image.png

简介

AutoUpdater.NET 是一个类库。NET 开发人员可以通过它轻松地将自动更新功能添加到他们的桌面应用程序中。

AutoUpdater.NET is a class library that allows .NET developers to easily add auto update functionality to their classic desktop application projects.

相关资源:

支持平台:

2 发布制作好的安装包,并生成一个可以直接下载它的地址

3 制作一个包含版本信息及安装包下载地址的 XML 文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <item>
  3. <version>2.0.0.0</version>
  4. <url>http://rbsoft.org/downloads/AutoUpdaterTest.zip</url>
  5. <changelog>https://github.com/ravibpatel/AutoUpdater.NET/releases</changelog>
  6. <mandatory>false</mandatory>
  7. </item>

4 在客户端项目的主窗体代码中加入:

  1. using AutoUpdaterDotNET;
  2. AutoUpdater.Start("http://rbsoft.org/updates/AutoUpdaterTest.xml");

如果是想要打开软件就自检升级,可以把 AutoUpdater.Start() 一句放在 Form 的构造体内;如果是想要点击按钮再检测升级,需要把这句放在 Button_Click 事件中。

常用配置

强制更新:

  1. AutoUpdater.Mandatory = true;
  2. AutoUpdater.UpdateMode = Mode.Forced;

将安装包下载路径设置到 AppData 中,避免没有文件写入权限:

  1. var folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
  2. "MySoftware\\");
  3. AutoUpdater.DownloadPath = folderPath;

更多配置请参考 Configuration Options