harper
harper

Reputation: 13690

Automatic installation of run-time libraries with WiX

When my file set includes DLLs with one ore more dependencies to the C++ run-time DLLs I need to install the file from VCRedist.exe. This can be difficult, since each DLL is dependent on a specific version of the C++ run-time.

Upvotes: 4

Views: 3021

Answers (3)

harper
harper

Reputation: 13690

Neither heat nor Votive does support the requested feature. The run-time DLLs must be added manually.

Upvotes: 0

Alexey Ivanov
Alexey Ivanov

Reputation: 11878

You need to install the latest version (highest) version required by your libraries and a policy file that redirects older versions to the new version.

You can do both with merge modules installed with Visual Studio. They're usually located in C:\Program Files\Common Files\Merge Modules. See MergeRef element and an example how to install Visual C++ redistributable with your installer. You will also need to add a policy merge module to your install.

Upvotes: 1

wimh
wimh

Reputation: 15232

You can simple make sure the latest vcredist is installed, it automatically includes support for older versions.

I think the easiest it to use bootstrapper to install the runtime before your installer runs. You might need to create your own package, but it is easy to use Bootstrapper Manifest Generator for this.

In the product.xml you can add an installation check to make sure it is not installed twice, for example:

  <InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}"/>
  </InstallChecks>

See here for other GUIDs.

Upvotes: 0

Related Questions