[wix-users] Visual C++ 2015 Redistributables

Kelly Graus kelly.graus at toltech.net
Wed Oct 14 10:32:49 PDT 2015


Does anyone have a good handle on how to deal with the Visual C++ 2015 Redistributables?  For previous versions we have used merge modules, but apparently that no longer works with VC2015 - Visual Studio 2015 installs merge modules on my development machine, and I am able to build an installer using them, but after installing on a Windows 7 machine my application displays an error message ("api-ms-win-crd-runtime-l1-1-1.dll is missing”).

This blog post (http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx <http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx>) says that merge modules are no longer supported, and we need to use Windows Update (which I guess means we would tell our customers to update?), include vcredist.exe in our installer, or do a local install (which I’m avoiding since I want security updates to be automatically applied), so vcredist it is...

I’ve updated our burn bundle to silently install vcredist.exe based on samples I’ve found online using previous versions of the redistributable.  On the same Windows 7 machine, the bootstrapper starts installing vcredist and then gets stuck, with no progress made (I’ve let it run for several hours just to make sure).  Below is the xml I’m using (minus redacted details).

Can anyone provide any clarity to this situation? Also, is the test I’m using valid, or is there a better way to determine if the package is already installed? I’ve found a few registry keys I may be able to use, but haven’t found an official method.

Thanks!

Kelly


<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi” xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

<?define ProductVersion=“x.x.xx" ?>
<?define Manufacturer=“Acme" ?>

<Bundle Name="$(var.ProductName)" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)” UpgradeCode="$(var.UpgradeCode)" IconSourceFile="..\Resources\Installer.ico">

<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" >
  <bal:WixStandardBootstrapperApplication LicenseFile="Resources\License.rtf” LogoFile=“Resources\Logo.png” SuppressOptionsUI="yes" />
</BootstrapperApplicationRef>

<Chain>
  <PackageGroupRef Id="redist"/>
  <MsiPackage SourceFile="$(var.MsiPath)" DisplayInternalUI="no">
    <MsiProperty Name="ARPSYSTEMCOMPONENT" Value="1"/>
  </MsiPackage>
</Chain>
</Bundle>

<!-- CRT Redist -->
<Fragment>
  <util:FileSearch Id="MFC140_Version_x86" Variable="MFC140_Version_x86" Path="[SystemFolder]mfc140.dll" Result="version" />
  <PackageGroup Id="redist_vc140">
    <ExePackage Id="vc140" Cache="yes" PerMachine="yes" Permanent="yes" Vital="yes" Compressed="yes"SourceFile="resources/vc_redist.x86.exe" InstallCommand="/quiet /norestart" InstallCondition="(NOT MFC140_Version_x86 >= v14.0.23026) OR NOT MFC140_Version_x86" Protocol="burn" />
  </PackageGroup>
</Fragment>

<Fragment>
  <PackageGroup Id="redist">
    <PackageGroupRef Id="redist_vc140"/>
  </PackageGroup>
</Fragment>
</Wix>



More information about the wix-users mailing list