MSI:修复同一文件的不同组件GU​​ID

时间:2017-03-28 06:45:37

标签: wix windows-installer

我继承了历史悠久的安装程序。在少数版本中,未正确跟踪组件GUID,导致给定文件的组件GUID不同。

v1.0: C:\Program Files\Foo\Foo.exe {GUID_A}
v2.0: C:\Program Files\Foo\Foo.exe {GUID_B}
v3.0: C:\Program Files\Foo\Foo.exe {GUID_B}

这显然是violates component rules,需要及早排序RemoveExistingProducts以避免升级后缺少文件。

每个新版本都安装为Major Upgrade。预计最新版本将彻底升级任何以前的版本。

问题:有没有办法重置或抢救这种情况?我想在InstallFinalize之后安排RemoveExistingProducts而不会造成破坏。

(因为我得到了项目的支持,我一直在使用heat.exe's确定性GUID。最好的功能。)

1 个答案:

答案 0 :(得分:2)

要切换到后期主要升级,您必须确保仅从符合组件规则的版本升级。因此,在这种情况下,您必须阻止从v1.0升级。