我现在定义了以下非常基本的 WIX 3.11 捆绑包,并且我已经删除了在安装 MSI 之前触发的 execpackages,因为我要描述的问题仅发生在 MSIPackage 命令和特定的第三方 MSI 我是使用。
<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="ACME APP 32Bit" Manufacturer="ACME CORP" Version="1.0.0.0" UpgradeCode="0B736949-AE50-46B0-A534-42C9672FAF1F" IconSourceFile='..\Common Files\Images\icon.ico'>
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLargeLicense">
<bal:WixStandardBootstrapperApplication
LicenseFile="..\Common Files\Documents\EULA.rtf"
ShowVersion="yes"
LogoFile="..\Common Files\Images\logo-64x64.png"
LogoSideFile="..\Common Files\Images\logo-64x64.png"
/>
</BootstrapperApplicationRef>
<Chain>
<MsiPackage Id="TP32BIT" SourceFile="ThirdParty.msi" Visible="no" />
</Chain>
</Bundle>
</Wix>
发生的事情是在捆绑包部署 MSI 并且存在安装成功完成对话框时,再次修改设置对话框(修复卸载取消)。
它似乎只发生在我需要安装的第三方 MSI 上。我无法控制此 MSI,也无法从制造商那里获得更改的支持。
我已经用另一个随机产品替换了 MSI,它不会导致同样的问题。它的部署没有有效地尝试再次运行捆绑安装程序。
我已经从命令行运行了第三方 MSI,并检查了它在注入时的返回代码,它返回 0。
我很困惑是什么导致安装程序认为它需要在完成此 MSI 后再次运行自己。没有 UUID 发生冲突,我认为我的 xml 中没有任何问题。
如果有人能对此有所了解,我将不胜感激。目前我唯一能想到的就是尝试通过从命令行运行 msiexec 的 execpackage 方法将这个特定的 MSI 部署到平台,但这完全否定了我首先使用捆绑包的原因。
提前致谢。