问题描述:

I am trying to call a dependent MSI setup (stored in Binary table) during my product installation (for example, after InstallFiles in InstallExecuteSquence) using a custom action "run executable" in my WiX code (I use WiX v3.5.2519.0) like this:

<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>

When I run my MSI file it walks through until the custom action "INSTALL_OTHERMSI". But it always fails with an error message:

A program required for this install to complete could not be run.

I don't want to use a bootstrapper, I want pure MSI. I've seen similar installations (like JetBrains ReSharper, which installs Visual Studio 2010 SP1 during setup) already doing the trick. How can I fix this problem?

网友答案:

First of all Windows Installer doesn't allow two installations to run at the same time. Thus this approach will not work. What you need is MSI chaining. You can use the EmbeddedChainer element

相关阅读:
Top