【发布时间】:2016-12-21 16:37:05
【问题描述】:
假设我分发了一个带有特定升级代码的 WiX Burn 包(我不知道任何产品代码)。假设我决定继续前进,我想转向 MSI 包。问题是:当我安装 MSI 包时,如何删除以前的 Burn 包?我给了两个相同的升级代码,但 MSI 似乎默认不卸载 Burn。
【问题讨论】:
标签: wix windows-installer burn
假设我分发了一个带有特定升级代码的 WiX Burn 包(我不知道任何产品代码)。假设我决定继续前进,我想转向 MSI 包。问题是:当我安装 MSI 包时,如何删除以前的 Burn 包?我给了两个相同的升级代码,但 MSI 似乎默认不卸载 Burn。
【问题讨论】:
标签: wix windows-installer burn
您可能需要在 MSI 中编写一个自定义操作,该操作遍历以下所有注册表项:
HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
并使用静态 UpgradeCode guid 的值搜索注册表值“BundleUpgradeCode”。当您找到它时,读入条目“UninstallString”或“QuietUninstallString”的值。这是您需要执行的命令,以便在安装新的 MSI 之前卸载以前的包。
警告:如果您卸载旧捆绑包并且新的 MSI 安装程序失败,则此方法不支持回滚。您最终会得到一台没有安装您的任何产品的机器。
【讨论】: