使用 WIX5 生成的 MSI 在重大升级时未升级可执行文件

问题描述 投票:0回答:1

软件包版本从“1.0.1”更改为“1.0.2”

MajorUpgrade 计划为“afterInstallExecute”。

  1. 仅运行 MSI 1.0.2 即可正确安装该版本。

  2. 运行 MSI 1.0.1 可正确安装版本。但在其之后运行 MSI 1.0.2,不会替换可执行文件。

(如果 MSI 1.0.2 执行时写入日志,在日志中搜索可执行文件名称,会出现以下行: 文件表键“MyExecutable.exe”表示的文件没有符合条件的二进制补丁

  1. 右键单击 MSI 1.0.2 并选择“重新安装”将替换可执行文件正确

第一: 可执行文件是.NET 8 独立应用程序。它自己的“版本”并没有改变。但文件“内容”不同。 MSI 是否只是检查可执行文件的版本,并得出没有“二进制补丁”的结论?

第二: 您知道如何修复/强制替换/解决这个问题吗?

windows-installer major-upgrade wix5
1个回答
0
投票

MSI 是否只检查可执行文件的版本...?

是的。详细日志文件还应该向您显示 Windows 安装程序选择跳过安装文件的原因。

您知道如何修复/强制替换/解决此问题吗?

首先,正确地对二进制文件进行版本控制。如果可执行文件发生更改,请更新其版本。这只是一个很好的编程实践。

其次,我会提前安排重大升级。更好的是,我会完全删除

MajorUpgrade
元素,并让 WiX v5 中的默认设置为您处理它。

© www.soinside.com 2019 - 2024. All rights reserved.