AutoUpdater.NET 实现 dotNET应用自动更新
AutoUpdater.NET 是一款用于WPF、Winform软件版本更新的框架,类似框架还有Squirrel、WinSparkle、NetSparkle、Google Omaha。
一、安装AutoUpdater.NET
首先,您需要在项目中安装AutoUpdater.NET库。您可以通过NuGet包管理器来安装它。在Visual Studio中,打开“包管理器控制台”(Package Manager Console),然后运行以下命令:
Install-Package AutoUpdater.NET
或者,如果您使用的是.NET Core命令行工具,可以运行:
dotnet add package AutoUpdater.NET
二、配置AutoUpdater.NET
安装完AutoUpdater.NET库后,您需要在应用程序中配置它。这通常涉及指定更新检查的频率、设置更新URL、定义更新文件的位置和格式等。
以下是一个简单的配置示例:
using AutoUpdaterDotNET;
// 在应用程序启动时调用此方法
public void ConfigureAutoUpdater()
{
// 设置更新检查频率(例如:每天一次)
AutoUpdater.CheckForUpdatesAndNotifyAsync("https://yourdomain.com/updates.xml", new TimeSpan(0, 24, 0));
// 更新检查完成后的事件处理
AutoUpdater.OnCheckForUpdateSuccess += (sender, e) =>
{
// 如果有更新可用,执行的操作
MessageBox.Show("Update available! Clicking OK will download and install the update.", "Update Available", MessageBoxButton.OK, MessageBoxImage.Information);
};
// 更新下载完成后的事件处理
AutoUpdater.OnDownloadUpdateCompleted += (sender, e) =>
{
if (e.Error != null)
{
// 处理下载错误
MessageBox.Show("Error downloading update: " + e.Error.Message, "Download Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
else
{
// 下载成功,准备安装更新
MessageBox.Show("Update downloaded successfully. Clicking OK will install the update.", "Update Downloaded", MessageBoxButton.OK, MessageBoxImage.Information);
}
};
// 更新安装完成后的事件处理
AutoUpdater.OnUpdateApplied += (sender, e) =>
{
if (e.Error != null)
{
// 处理安装错误
MessageBox.Show("Error installing update: " + e.Error.Message, "Installation Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
else
{
// 更新成功安装
MessageBox.Show("Update installed successfully!", "Update Applied", MessageBoxButton.OK, MessageBoxImage.Information);
}
};
}
三、更新文件
AutoUpdater.NET需要一个XML格式的更新文件来告知应用程序哪些版本是可用的。下面是一个简单的更新文件(updates.xml)示例:
<?xml version="1.0" encoding="UTF-8"?>
<Updates>
<Update>
<Version>1.1.0</Version>
<Url>https://yourdomain.com/updates/MyApp_1.1.0.exe</Url>
<Mandatory>false</Mandatory>
<Description>Minor bug fixes and performance improvements.</Description>
</Update>
<Update>
<Version>1.2.0</Version>
<Url>https://yourdomain.com/updates/MyApp_1.2.0.exe</Url>
<Mandatory>true</Mandatory>
<Description>New features and bug fixes.</Description>
</Update>
</Updates>
在这个XML文件中,每个<Update>
节点代表一个可用的更新版本。<Version>
定义了版本号,<Url>
是下载更新文件的链接,<Mandatory>
指示该更新是否是强制性的(如果设置为true
,则用户必须安装该更新),<Description>
提供了有关更新的简短说明。
四、启动自动更新
在您的应用程序中,您应该在启动时调用ConfigureAutoUpdater
方法以启动自动更新功能。通常,这会在Main
方法或窗口的构造函数中完成。