2

我正在使用 WiX 3.5 为我们软件的最新版本编写安装程序。以前版本的安装程序是使用 InstallAware 8 编写的。在安装过程中,我想删除旧版本,但 InstallAware 做了一些奇怪的事情,所以正常的 RemoveExistingProducts 方法不起作用。msiexec /x {PRODUCTCODE} 也没有。

当 RemoveExistingProducts 运行时,它会弹出一个对话框,询问旧安装中 .msi 文件的位置。我可以在注册表中找到它的位置,如果我在对话框中输入该位置,卸载工作正常。但是我希望对话框不显示,有什么方法可以告诉 RemoveExistingProducts 在哪里可以找到它?

4

3 回答 3

2

似乎违反了一些避免提示来源的规则。看看这些建议是否有帮助。

于 2011-03-11T15:11:47.783 回答
1

除了这个答案,还请检查这个答案:“卸载 MSI 的不同方法”。

检查是否有为您的旧设置定义的自定义卸载字符串:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YOUR GUID HERE\UninstallString

这是控制面板中的添加/删除小程序最常用的位置。如果您在此处找到卸载字符串,则可以在运行新安装之前通过自定义操作运行卸载。有点难看,我宁愿通过 setup.exe 运行安装过程。

另一个位置是:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products

在这里,您将找到打包的 GUID。在每个 GUID 下检查,然后在“ InstallProperties ”下检查InstallSource。此路径是安装引擎将在其中查找卸载应用程序所需的 MSI 文件的搜索路径。

于 2014-05-22T20:15:05.477 回答
0

HKLM\Software\Microsoft\Windows\CurrentVerison\Uninstall\<GUID_or_product_name>\WindowsInstallerkey 设置为 1 时,您需要HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\<mangled_guid>\InstallProperties\InstallSource查看它认为 .msi 被缓存的位置。基本上,确保在搜索 InstallSource 时查看正确的注册表位置。

于 2011-03-11T15:44:11.200 回答