自动更新应用程序指南

随着GitHub在开发者中的普及,经常需要更新应用程序以获取最新的功能和修复。本文将介绍一个简单而有效的自动更新机制,它可以从GitHub获取最新的发布版本,并自动更新应用程序。

准备应用程序

首先,需要一个名为ZZupdate0.exe的更新器。将这个文件添加到项目根目录,并在属性中设置为Embedded Resource。这样,更新器就会被嵌入到项目中。更新器是一个小型的引导程序,允许应用程序关闭,以便在重新运行应用程序之前替换可执行文件和锁定的文件。

需要使用程序集版本信息,以便更新器能够处理版本控制。确保始终设置程序集版本。

Updater.cs文件添加到项目中,并在Program.cs的顶部添加命名空间:

using AutoUpdate;

在程序的Main函数中,在执行任何其他操作之前,插入以下代码:

// 设置自动更新,并在有更新时退出 Updater.GitHubRepo = "GitHub仓库地址"; if (Updater.AutoUpdate(args)) return;

如果需要明确地强制更新到特定版本,可以调用:

Updater.Update(new Version(major, minor, bld, rev));

已经在示例中包含了Updater shim。Visual Studio有时在尝试将输出嵌入到AutoUpdate示例时会出现问题,但只需再次构建,错误应该会消失。

在运行示例时,请注意表单报告的版本。可能会发现更新窗口短暂地闪过,但随后会看到表单重新弹出,显示程序集版本和从命令行接收的参数,以便可以看到更新发生了。参数是最初传递给应用程序的。

准备GitHub仓库和压缩包

以下是向GitHub添加更新发布的步骤。请严格按照以下步骤操作。也可以参考附带的示例:

这最适合已经使用GitHub进行源代码管理的项目,所以可能需要创建一个。无论如何,都需要一个仓库来提取。如果没有,请在上面创建一个。

创建后,转到发布页面,并起草一个新发布。

标签必须是(区分大小写)Refresh.v<AssemblyVersion>,例如:Refresh.v1.0.0.5

压缩文件必须直接包含二进制文件夹的内容,而不是文件夹本身。应用程序的可执行文件应该在压缩文件的根目录。通常会去bin\Release并突出显示除.pdb之外的所有内容,然后发送到|压缩文件夹...

将zip文件命名为<GitRepoName>.Refresh.v<AssemblyVersion>,例如MyApp.Refresh.v1.0.0.5,如果MyApp是仓库名称,1.0.0.5是压缩文件中包含的程序集版本。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485