我正在尝试将 Squirrel.Windows 与我的应用程序一起使用,以从其 GitHub 存储库安装和自动更新。跟随示例
https://github.com/Squirrel/Squirrel.Windows/blob/master/docs/getting-started/1-integrating.md
我能够成功完成所有步骤。我测试了安装,应用程序打开没有问题。我更新并“发布”了它,本地安装的应用程序按预期更新。
因此,我知道如果我从本地目录执行此操作,Squirrel 工作正常,但是,我需要从 GitHub 执行此操作。我按照这里的指示
从那以后,我将 App.xaml.cs 中的代码更新为以下内容
public partial class App : Application
{
protected override async void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
MessageBox.Show(typeof(App).Assembly.GetName().Version.ToString());
// Check for application updates
using (var mgr = UpdateManager.GitHubUpdateManager("https://github.com/Dartvalince/DiscerningEye"))
{
await mgr.Result.UpdateApp();
}
}
接下来,我执行与之前相同的过程,创建 nupkg,并使用 Squirrel 执行发布命令。这里没有问题,很好。
毕竟,我执行 git commit 和 git push 将源代码上传到 GitHub。GitHub 上的所有内容都使用最新的提交进行了更新。这里好
接下来,在 GitHub 页面上,我创建一个新版本。用于发布的标签与创建的 .nupkg 中使用的程序集版本相同。Release
对于要附加到版本的文件,我从通过 Squirrel 创建的文件夹中拖放所有文件。
好的,现在一切都在 GitHub 上。然后我开始对此进行测试,以确保用户下载所有文件,然后运行 Setup.exe,它会正确安装并打开。当我这样做时,我将每个文件下载到我桌面上的一个文件夹中,然后单击 Setup.exe。当我这样做时,我会MessageBox.Show(typeof(App).Assembly.GetName().Version.ToString());
从应用程序中获得预期的 MessageBox 弹出窗口,显示正确的程序集版本号,但什么也没有。就像在这一点上,它卡在代码的更新部分并且永远不会超过它。我可以让它在那里过夜,什么也没有。我什至可以在任务管理器中看到内存中运行的进程,所以我知道它没有出错并关闭,但它的 CPU 使用率为 0%,网络使用率为 0%。
任何帮助将不胜感激。