首页 文章

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

提问于
浏览
0

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

1 回答

  • 1

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

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

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

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

相关问题