Wix 安装补丁时重复组件 Guid 的问题

Wix Duplicate component Guid's issue while installing patch

我们发布了 MSI 版本 12.2.1.0,并且在 Fix 1 中添加了新组件,现在发布的 Fix 1 有 2 个具有相同 GUID 的组件。我们已经确定 Fix2 中的问题,因为补丁似乎没有 overwrite/replace 由于组件的重复 GUID 文件,在安装 Fix2 时跳过了引用组件的功能。

如何解决 Fix2.We 中的重复 GUID 问题无法返回到已交付给客户的 fix1。

第一部分

如何安全地删除重复的 GUID,使补丁安装功能不会跳过。

日志显示 第 1042 行:MSI (c) (9C:7C) [11:47:25:815]:SELMGR:组件 'xyz_shortcut18' 已注册到功能 'P',但不存在于功能组件 [=30] =].不支持从功能中删除组件!

ICE 警告:不幸的是在生成补丁时被忽略了 warning LGHT1137: Component/@Id='p19.arx' has a @Guid value '{36B8C853-9E9E-48D7-BDCD-E4D6C376B781}' that dupli 包含此包中的另一个组件。 Windows 安装程序未正式支持此功能,但只要所有组件都具有互斥条件,它就可以工作。

我们正在使用 wixout 文件生成转换纯补丁程序。

要修复 Component Rule violations,您需要使用很早就安排的主要升级(在 InstallValidate 之后)。这将在安装固定包之前删除 "bad package",避免违反组件规则。

之后,您可以尝试更高级的 upgrade/patching 方案。