【发布时间】:2013-12-20 20:20:47
【问题描述】:
我正在使用 WiX 构建安装程序包,我打算用它来替换 InstallShield MSI 包。作为安装过程的一部分,WiX 包会卸载旧包。问题在于它在“添加/删除程序”列表中留下了一个叛徒项目。我只是使用 wix 3.5 条目:
<MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed. 'Setup will now exit." />
奇怪的是:
- 两个软件包的升级代码 GUID 相同
- 新包的产品 ID GUID 是新的。
- 旧软件包的文件和快捷方式以及所有实际执行的内容都会被删除。
- 查看日志文件,RemoveExistingProducts 实际上删除了包。
-
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall中没有与旧包有关的任何内容
所以我怀疑这一切的原因是某种 installshield 的怪异之处。虽然让 WiX 为我做所有事情会很好,但我可以在注册表中删除旧包的任何条目或 ARP 对话框看起来的其他任何地方,如果有人可以指出我有关如何执行此操作的更多信息?
有什么想法吗?
【问题讨论】:
-
你确定这里什么都没有:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall?我相信 InstallShield 在里面放了两个条目。一个在Uninstall\[ProductCode]中,另一个在类似于Uninstall\InstallShield_blahblabh的地方。我会检查,如果您找到对该产品的引用,请手动删除它。
标签: windows wix installation installshield