安装MSI时如何卸载以前的Burn包

时间:2016-12-21 16:37:05

标签: wix windows-installer burn

假设我已经发布了一个带有特定升级代码的WiX Burn软件包(我不知道任何产品代码)。假设我决定继续前进,我想转向MSI包。问题是:在安装MSI软件包时,如何根据升级代码删除以前的Burn软件包?我已经给出了相同的升级代码,但MSI似乎默认情况下不会卸载Burn。

1 个答案:

答案 0 :(得分:1)

您可能需要在MSI中编写一个自定义操作,该操作遍历以下所有注册表项:

HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall

并使用静态UpgradeCode guid的值搜索注册表值“BundleUpgradeCode”。找到它时,请读入条目“UninstallString”或“QuietUninstallString”的值。这是您在安装新MSI之前需要执行的命令,以便卸载以前的捆绑包。

警告:如果卸载旧捆绑包并且新的MSI安装程序失败,则此方法不支持回滚支持。您最终会得到一台既没有安装任何产品的计算机。