我丢失了旧安装程序的GUID。我设法使用Orca获得升级ID,但它仍然没有从程序和功能列表中删除旧版本。如何卸载一个全新的msi / bootstrapper?
答案 0 :(得分:8)
如果您要卸载MSI(即不是引导程序),那么您应该能够使用WIX <Upgrade>
元素将其卸载,方法是在那里指定:
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is installed." />
<Upgrade Id="{YOUR-OTHER-STUFF-GUID-HERE}">
<UpgradeVersion OnlyDetect="no" Property="OTHER_STUFF_FOUND" Minimum="0.0.0" />
</Upgrade>
如果你有一些EXE要卸载,而不是MSI,那么AFAIK只有自定义操作才是解决方案(只需使用自定义操作执行卸载行)。
答案 1 :(得分:0)
- 使用Windows安装程序API:MsiEnumRelatedProducts()获取共享相同UpgradeCode的所有产品的列表。
https://msdn.microsoft.com/en-us/library/aa370103(v=vs.85).aspx
此API返回系统上安装的共享相同UpgradeCode的所有产品的产品代码。
您可以通过互联网或Windows安装程序SDK查看此示例。
希望这有帮助。
此外,最近有一个相关问题:
- 另一种方法是使用新的msi包升级旧的msi包。
http://wixtoolset.org/documentation/manual/v3/howtos/updates/major_upgrade.html
希望这有帮助。
答案 2 :(得分:0)
另一种方法是从注册表中读取卸载密钥(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall)
并查找您的应用程序名称/发布者,如果匹配,则执行UninstallString
命令。