I have a Setup project which contains BootstrapperFile
items in the wixproj and using the GenerateBootstrapper
generates a setup.exe which bootstraps 6 items (e.g. .NET 4.0, Adobe Acrobat Reader, Adobe Flash Player).
This setup.exe works by itself. I can uninstall Adobe Acrobat Reader and then using setup.exe reinstall it. The files in OutDir
are Folder1
, Folder2
... Folder6
for the prerequisites and then setup.msi and setup.exe.
I have another Setup project which generates a App.msi. This App.msi can be installed by itself.
I would now like to Chain the above two items in the following order: setup.exe -> App.msi
I am able to Chain App.msi alone and it works.
The Chain elements looks like below:
<Chain>
<ExePackage SourceFile="$(var.SetupPrereqs.TargetDir)setup.exe" Cache="no" ></ExePackage>
<MsiPackage SourceFile="$(var.Setup.TargetDir)App.msi" ForcePerMachine="yes" Cache="no"></MsiPackage>
</Chain>
However I am unable to chain the ExePackage. I get the following error:
[0984:2360][2013-07-25T11:19:34]e000: Error 0x80070643: Process returned error: 0x643
[0984:2360][2013-07-25T11:19:34]e000: Error 0x80070643: Failed to execute EXE package.
[0FD8:2240][2013-07-25T11:19:34]e000: Error 0x80070643: Failed to configure per-machine EXE package.
[0FD8:2240][2013-07-25T11:19:34]i319: Applied execute package: setup.exe, result: 0x80070643, restart: None
[0FD8:2240][2013-07-25T11:19:34]e000: Error 0x80070643: Failed to execute EXE package.
The VS log did the following:
Line 19: 'Adobe Reader XI' RunCheck result: No Install Needed
Line 37: 'Windows Media Player 11' RunCheck result: No Install Needed
Line 70: 'Windows Installer 4.5' RunCheck result: No Install Needed
Line 92: 'Adobe Flash Player 11 ActiveX' RunCheck result: No Install Needed
Line 106: 'Microsoft .NET Framework 4 (x86 and x64)' RunCheck result: No Install Needed
Line 116: 'Microsoft Visual Studio 2010 Report Viewer' RunCheck result: No Install Needed
It failed here: Launching Application. Error: Unable to locate application file 'setup.msi'.
How do I ensure that the setup.exe finds the setup.msi in the end?
I actually do not need the setup.msi to run. It is enough if the control comes back to the Chain.
Adding the msi file as a Payload element inside the ExePackage solved the issue.
<ExePackage SourceFile="$(var.SetupPrereqs.TargetDir)setup.exe">
<Payload SourceFile="$(var.SetupPrereqs.TargetDir)setup.msi"></Payload>
</ExePackage>
User contributions licensed under CC BY-SA 3.0