首页 > 解决方案 > 拥有第三方 msi 的 ProductCode 和 UpgradeCode,如何在安装我的产品时强制卸载 msi

问题描述

通过测试,我发现我们的第三方软件的升级是如何使我们的产品无法运行的。但是,同一位测试人员告诉我,卸载旧的第三方软件并安装较新版本的软件似乎可行。

我被要求在安装新的先决条件之前删除旧软件。我很惊讶升级没有正常工作,但我想知道如何实现这一点。

在您知道 ProductCode 和 UpgradeCode 的捆绑安装程序期间,是否有任何方法可以卸载产品?

编辑:进一步研究,我在第三方软件网站上发现了以下内容

升级后,他们必须在控制面板/程序中修复安装

通过wix安装后是否可以运行修复?

标签: windows-installerwix3

解决方案


修复:要在安装结束时修复另一个设置,有几种方法。

  1. MSI:您可以在 MSI 安装 GUI 序列的末尾插入此 msiexec.exe 命令作为 hack。这确实是一个 hack - 可能会导致问题:

    msiexec.exe /fa {00000000-0000-1111-0000-000000000000}
    
  2. Burn:如果您作为 Burn Bundle 的一部分运行,则可以Repair.cmd使用上述命令插入批处理文件,然后将其作为 ExePackage 插入到 Burn Bundle 中。也很hacky。片段

    <..>
    <Chain>
      <!--<MsiPackage SourceFile="Product.msi" />-->
      <ExePackage SourceFile="Repair.cmd" />
    </Chain>
    <..>
    

最好先安装自己的设置后安装最新版本的运行时。这似乎是最不容易出错的。


Setup.exe:我认为更好的选择是提供一个 setup.exe,它首先使用最新版本的第三方运行时,然后安装您自己的软件,如果这不起作用,请尝试安装最新版本的安装自己的软件之后的第三方运行时?你熟悉烧录吗?WiX 的 setup.exe 引导程序/下载程序/捆绑程序?

快速刻录示例带有 Visual Studio 2017 安装程序项目的 SQL Server 命名实例

Setup.exe 用法

  1. 安装更新的 Crystal Reports - 最新版本
  2. 安装自己的软件包

或者如果上述失败,请切换顺序?


推荐阅读