9
votes

We just migrated our installer from WiX 2.x to WiX 3.6 and started using Burn. Previously, we were installing the Visual C++ redistributable by including the .msm files from C:\Program Files\Common Files\Merge Modules to our MSI. Those files are always in sync with the one we use to build our product (they are updated frequently by Microsoft to include security fixes).

Now, we would like to have the Visual C++ redistributable downloaded only if required by using the Burn framework. However, Burn does not define a MsmPackage element to place inside Chain.

What is the best approach for deploying Visual C++ redistributable using Burn?

2
What about creating a "vc redist-msi" including only the vc redist msm file?Morten Frederiksen
That was the approach I was thinking, but Bob's answer seems to involve less management.decasteljau

2 Answers

7
votes

Merge modules can only be merged into an .msi; they can't be installed independently. You can use ExePackage to install the appropriate vcredist*.exe.

1
votes

This is what you should do:

  1. Create an MSI project that only includes the merge modules you need.
  2. Clamp the MSI package version number, product code and upgrade code.
  3. Use the MSI in your bundle.

Now 2) will ensure that in upgrade scenarious the MSI won't be installed, or if it is an external payload, it won't be downloaded.

The problem with packaging vcredist*.exe is that some user might think that it is an independent install and uninstall it and break your application.