WIX MSI 版本 3 > 版本 4 - 已安装程序列表中有重复项目

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

我使用 HeatWave 将 WIX 模板从版本 3 迁移到版本 4。如果我想在使用 WIX MSI 模板版本 3 的旧安装之上安装 MSI,该文件确实已正确更新,但是,我得到Windows 11 控制面板中的“程序和功能”列表中有重复的入口。

升级代码与旧的 MSI 安装相同。我补充道:

<Upgrade Id="same-id-as-UpgradeCode">
  <UpgradeVersion Minimum="1.0.0" Maximum="reference-to-actual-version" Property="PREVIOUSFOUND" IncludeMinimum="yes" IncludeMaximum="no" />
</Upgrade>

这种改变并没有改变结果。 程序版本较高,部分正在更新的文件版本较高而被替换,这一面没有问题。我已经进去了:

<MajorUpgrade Schedule="afterInstallInitialize" DowngradeErrorMessage="message as text" />

我在运行新的 MSI 时查看日志文件,显然与简单安装相比,文件被删除的部分丢失了。

我浏览了 WIX 的文档架构,并浏览了 HeatWave 基本包和文档中的新项目示例。

我不知道如何查找,为什么版本 4 没有获取 UpgradeCode 并删除 MSI 包。我尝试使用旧版本的 MSI WIX 软件版本 3、新版本的软件版本 4 和新版本的软件版本 3 重复测试。结果始终相同 (old.msi v3 > new.msi v3 (成功),v3 > v4(重复))。

模板的迁移删除了产品密钥,而是在其位置添加了软件包,产品中的 Id= 不再存在,但正如迁移日志中指出的那样,这是可以的*

日志文件中存在一些错误,它们看起来与“SQL”请求相关。最详细的如下:

MSI (34:08) [17:41:05:031]:注意:1:2205 2:3:错误 MSI (34:08) [17:41:05:031]:注意:1:2228 2:3:错误 4:选择

Message
来自
Error
Error
= 2911 调试:错误 2911:无法 删除文件夹 C:\Config.Msi。安装程序遇到了 安装此软件包时出现意外错误。这可能表明有问题 有了这个包。错误代码为 2911。参数为: C:\Config.Msi,,

升级成功和失败的日志主要区别如下;升级:

操作 17:56:26:查找相关产品。正在寻找相关 应用程序 找到应用程序:[1] 操作开始 17:56:26: 查找相关产品。查找相关产品:MSI (c) (6C:90) [17:56:26:090]:属性更改:添加 WIX_UPGRADE_DETECTED 属性。 其值为“{887DFE8D-6464-4D97-BED3-70E80F38FF67}”。 MSI (c) (6C:90) [17:56:26:090]:属性更改:添加 MIGRATE 属性。其值为 '{887DFE8D-6464-4D97-BED3-70E80F38FF67}'。

失败:

操作 17:39:40:查找相关产品。正在寻找相关 应用程序 找到应用程序:[1] 操作开始 17:39:40: 查找相关产品。 MSI (c) (50:A4) [17:39:40:465]: FindRelatedProducts:当前安装是每台计算机的。相关安装 产品“{887DFE8D-6464-4D97-BED3-70E80F38FF67}”是针对每个用户的。 跳过... MSI (c) (50:A4) [17:39:40:465]:FindRelatedProducts: 当前安装是每台机器。产品的相关安装 “{887DFE8D-6464-4D97-BED3-70E80F38FF67}”是针对每个用户的。跳过...

wix windows-installer wix4
1个回答
0
投票

你确实发现了问题:

FindRelatedProducts: current install is per-machine. Related install for product '{887DFE8D-6464-4D97-BED3-70E80F38FF67}' is per-user. Skipping...

您的新软件包是针对每台计算机的,但您的旧 MSI 是针对每用户的。 Windows Installer 不会跨安装范围升级。

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