Running 3rd party exes as part of bundle

May 31, 2016 at 3:52 PM
Hello All,

Currently i have a bundle that has to msi packages that I made. I made a custom action to detect the .Net framework and install the 4.6.1 version if it is not already installed. In the same custom action I also install the VC++ redistributable. Both of those are provided by exes from microsoft so I just do Process.Start( ) to run them. During the install they appear to run but it doesn't seem they get installed as I do not see them appear in appwiz (Plus my app doesn't work).

Can anyone give me guidance on how I should be calling these as part of my custom action?
May 31, 2016 at 11:45 PM
There is nothing fundamentally wrong with running your setups this way except that if executed during the actual installation phase of your primary setup (msi) the executables will be prevented from doing any installation. This is because MSI installations are atomic and only a single installation can be in an active phase at the time. Meaning that any attempt to do another installation will fail.

Though this constrain is not applicable to the pre-installation phase when your setup is collecting the information and interacting with user. At this stage you can start another installation, wait and continue when it's done. This is the exact approach that is demonstrated by the SimplifiedBootstrapper sample. Interestingly enough it shows how to deploy CRT redistributable as prerequisite. Though this approach is not reliable as the CA responsible for the dependency package deployment will not be executed if your msi file is launched in silent mode.

Wix# relied on SimplifiedBootstrapper model before a proper WiX bundle solution (Burn) has been integrated. Today there are only a few extreme cases that cannot be solved with Burn. Wix# currently offer a full support for Burn (this also covers bundling exe-based dependency setups ) and you can find multiple complete samples in the WixBootstrapper* dirs.