我在使用 C# 版 Autoupdater.Net 时遇到问题。 我的程序从 C:\Systeminventory 启动并找到更新。程序正在下载它并关闭应用程序。一切都很好。但是,在安装更新时,更新程序会因解压而挂起。什么也没发生。
如果我将应用程序文件移动到 C:\Systeminventory\folder
并启动它,更新程序会下载更新并将其解压到 C:\Systeminventory
。那不是我想要的。我想从 C:\Systeminventory
启动应用程序,并将更新的文件放入 C:\Systeminventory
。更新程序似乎无法覆盖旧文件,但为什么呢?
应用程序已关闭且未运行。我在任务管理器中检查了这一点。我在我的私有(private)电脑上测试了它,我是管理员。我做错了什么?
使用
- Windows 10 21H1
- Visual Studio 2019 社区版
- Autoupdater.NET.Official 1.7.0
- .NET Framework 4.8
这是 XML 文件
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>1.1.0.0</version>
<url>https://example.com/update/update.zip</url>
<changelog></changelog>
<checksum algorithm="MD5">e2b0bf57f72f865209caab60eb6c13b6</checksum>
<mandatory>false</mandatory>
</item>
这是C#代码
try
{
AutoUpdater.Start(updatePath);
AutoUpdater.ShowSkipButton = false;
AutoUpdater.ShowRemindLaterButton = false;
AutoUpdater.Mandatory = true;
//AutoUpdater.UpdateMode = Mode.Forced;
AutoUpdater.RunUpdateAsAdmin = false;
var currentDirectory = new DirectoryInfo(Environment.CurrentDirectory);
if (currentDirectory.Parent != null)
{
AutoUpdater.InstallationPath = currentDirectory.Parent.FullName;
}
}
catch (Exception)
{
MessageBox.Show("There's a problem in update");
}
最佳答案
我找到了解决方案。
我将存储在调试/发布文件夹中的文件打包到一个 zip 文件中 如果你这样做,你必须删除“Parent”。所以正确的代码是:
AutoUpdater.InstallationPath = currentDirectory.FullName;
现在它会覆盖文件并启动新版本。一切都很好。
关于C# Autoupdater.net 无法提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68514708/