Updated VC 8.0 runtime redistributable packages are included in Visual Studio 2005 SP1

I posted an item last week that described how to detect the presence of the Visual C++ 8.0 runtime files redistributable packages.  Over the weekend, a customer pointed out to me that Visual Studio 2005 SP1 includes modified versions of the VC redist packages.

The SP1 versions of the VC redist packages include the following changes:

  • The Windows Installer 3.1 requirement has been eliminated by rewriting a custom action included in the original MSIs so it does not use APIs that only exist in Windows Installer 3.x
  • The product codes were changed for each of the MSIs
  • The MSIs now implement the Windows Installer major upgrade feature to automatically upgrade systems that have the original VS 2005 version to the SP1 version

Because the product codes were changed, the detection mechanism that I described in my previous blog postwill not work for the SP1 versions of the VC redist MSIs.  The following steps can be used to check for the existence of the modified VC redist packages that are included in VS 2005 SP1:

  1. Call the MsiQueryProductStateAPI
  2. Pass in the product code for the package that you want to detect based on the list below
  3. Check the return value of this API.  If it is anything other than INSTALLSTATE_DEFAULT, the package is not yet installed

Visual C++ 2005 runtime files

Visual C++ 2005 SP1 runtime files

Visual C++ 2005 SP1 ATL Security Update runtime files

Visual C++ 2005 SP1 MFC Security Update runtime files

One additional note - the data files included with the Visual Studio deployment bootstrapper tool were not updated with the new SP1 detection mechanism.  This means that if you build a setup project in VS 2005 SP1 and include the VC redist package as a prerequisite, your setup will end up downloading and installing the VC redist package on systems that already have the original VS 2005 version of this redist package installed.  Because of the major upgrade functionality, this will not harm users' systems at all, but it will result in a slight time delay due to an unnecessary download and install.

<update date="11/19/2009"> Added information about VC++ 2005 and VC++ 2005 SP1 ATL Security Update packages. </update>

<update date="1/17/2012"> Added information about VC++ 2005 SP1 MFC Security Update packages. </update>