【问题标题】:How to uninstall inno setup application from Wix bundle如何从 Wix 包中卸载 inno setup 应用程序
【发布时间】:2021-06-29 12:05:27
【问题描述】:

我的 Wix 包正在安装一些使用 Inno 安装程序打包的第 3 方 EXE 包。如您所知,Inno Setup 卸载程序是一个单独的可执行文件。基本上,当您安装 AThirdParty.EXE - 它会在其部署的文件夹中创建一个 unin000.exe(例如 C:\Program Files (x86)\AThirdPartyApp\unins000.exe ),这就是我在卸载包期间需要执行的内容。有人知道如何使用 Wix Bootstrapper 吗?

以下是我的 ExePackage 的示例:

<PackageGroup Id="MyThirdPartyPackages">
  <ExePackage Id="AThirdPartyExe"
            DisplayName="A Third Party Exe"
            Cache="yes"
            Compressed="yes"
            PerMachine="yes"
            Permanent="no"
            Protocol="none"
            Vital="yes"
            SourceFile=".\AThirdPartyExe.exe"
            DetectCondition="AThirdPartyExeExists"
            InstallCommand="/VERYSILENT /SUPPRESSMSGBOXES"
            UninstallCommand="[ThirtdPartyEXEPath]\unins000.exe" <!-- Can I use uninstallcommand for this?? -->
              />
</PackageGroup> 

【问题讨论】:

  • AThirdPartyExe.exe 不支持 /UNINSTALL /VERYSILENT /SUPPRESSMSGBOXES 吗?
  • 不,不支持AThirdPartyExe.exe /UNINSTALL
  • 是否有任何商业理由将这个包标记为永久而不打扰卸载? (例如安装 .NET 或 VCRedist。)
  • “永久”安装是当前行为。如果可能的话,我只是想自己清理一下:)

标签: wix bundle inno-setup uninstallation bootstrapper


【解决方案1】:

假设 Inno Setup 不支持 /uninstall 标志(不知道,但如果是这样的话,又是只使用 MSI 的另一个原因)并且您不想将安装程序重新打包到 MSI 中,我能想到的最快解决方案是中间人EXE。

InstallShield 过去(可能仍然)有一个 Helper.exe 用于它的一些设置先决条件。您将对其进行编码以接受 /INSTALL 和 /UNINSTALL 参数并让 WiX 调用它。它会反过来调用你上面描述的实际安装和卸载。

【讨论】:

  • 感谢@Christopher Painter。在这种情况下,我担心“中间人 EXE”将是唯一的选择。我不控制原始的 AThirdPartyExe.exe,也无法将其重新打包为 MSI。那么
  • InstallCommand 将只是 /INSTALL 并且 MainInTheMiddle 将执行一个过程。从 AThirdPartyExe.exe /VS /SUP ... 开始。您需要使用 Payload 元素来告诉 burn 带上第三方 exe。
  • 默认情况下可以卸载 Inno Setup 包(除非包在 [Setup] 部分中配置了 Uninstallable=yes)。只需运行卸载程序可执行文件(通常为unins000.exe)。由于您可能想要免提卸载,您将使用/silent/verysilent 参数,也可能使用/suppressmsgboxes(有关详细信息,请参阅documentation)。
  • @Bill_Stewart 问题在于 unins000.exe 是一个单独的可执行文件。按照设计,Wix 希望使用命令行参数运行主可执行文件以卸载程序
  • 我是说 InstallCommand 和 UninstallCommand 都调用 Helper / MITM EXE。然后它可以在 WiX 不知道的情况下调用安装 exe 和卸载 exe。
猜你喜欢
  • 2016-01-14
  • 2018-05-04
  • 1970-01-01
  • 2016-05-28
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
相关资源
最近更新 更多