我继承了历史悠久的安装程序。在少数版本中,未正确跟踪组件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。最好的功能。)
答案 0 :(得分:2)
要切换到后期主要升级,您必须确保仅从符合组件规则的版本升级。因此,在这种情况下,您必须阻止从v1.0升级。