第一次安装时根据MSI调用的自定义WiX操作

第一次安装时根据MSI调用的自定义WiX操作,wix,windows-installer,Wix,Windows Installer,我试图在产品安装期间调用存储在二进制表中的依赖MSI设置,例如,在InstallExecuteSquence中使用自定义操作运行WiX代码中的可执行文件后,我使用WiX v3.5.2519.0,如下所示: <Upgrade Id="{CB60C307-588D-47F5-87DD-7FDAE12434B0}"> <UpgradeVersion Property="OTHERMSI" Minimum="1.0.0"

我试图在产品安装期间调用存储在二进制表中的依赖MSI设置,例如,在InstallExecuteSquence中使用自定义操作运行WiX代码中的可执行文件后,我使用WiX v3.5.2519.0,如下所示:

<Upgrade Id="{CB60C307-588D-47F5-87DD-7FDAE12434B0}">
    <UpgradeVersion Property="OTHERMSI"
                    Minimum="1.0.0"
                    Maximum="1.1.0"
                    IncludeMinimum="yes"
                    IncludeMaximum="yes"
                    OnlyDetect="yes"/>
</Upgrade>

<CustomAction Id="INSTALL_OTHERMSI"
              Impersonate="yes"
              Return="check"
              Execute="immediate"
              BinaryKey="Other.msi"
              ExeCommand=""/>

<Binary Id="Other.msi"
        SourceFile="c:\temp\sources\Other.msi"/>

<InstallExecuteSequence>
  <Custom Action="INSTALL_OTHERMSI"
          After="InstallFiles">OTHERMSI="" AND NOT PATCH AND NOT Installed</Custom>
</InstallExecuteSequence>
当我运行我的MSI文件时,它会一直运行,直到自定义操作安装_OTHERMSI。但它总是失败,并显示一条错误消息:

无法运行完成此安装所需的程序


我不想使用引导程序,我想要纯MSI。我见过类似的安装,比如JetBrains,它在安装过程中安装了VisualStudio2010SP1。如何解决此问题?

首先,Windows Installer不允许同时运行两个安装。因此,这种方法将不起作用。你需要的是MSI链接。您可以使用元素

首先,Windows Installer不允许同时运行两个安装。因此,这种方法将不起作用。你需要的是MSI链接。您可以使用元素

正确!我忘了一次只运行一个MSI。EmbeddedChainer听起来很有趣,但Windows Installer>=4.5支持它。目前我正在使用2.0,因为我们的产品安装面对的是非常旧的Windows操作系统,但这可能是一个很好的功能,可以在将来考虑。谢谢正当我忘了一次只运行一个MSI。EmbeddedChainer听起来很有趣,但Windows Installer>=4.5支持它。目前我正在使用2.0,因为我们的产品安装面对的是非常旧的Windows操作系统,但这可能是一个很好的功能,可以在将来考虑。谢谢