Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

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

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

Rate This
  • Comments 10

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>

 

  • Bravo on removing the MSI 3.1 dependency for the VC8 redists (msm & standalone).  Now to revist our setup to see if we can remove MSI 3.1 (and it's reboot).  :)

  • I'm afraid I don't understand your last paragraph.

    "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."

    Surely, this won't be downloaded, because the bootstrapper definition of the test will say that the file has already been installed.  Therefore, my application will not run correctly, as the prerequisite for VC 8.0 SP1 hasn't been fulfilled.

    Anthony Wieser

    Wieser Software Ltd

  • Hi Anthony - I'm referring to the bootstrapper tool that is used to build a setup.exe in the VS setup/deployment projects in this note.  The data files that the bootstrapper uses to detect whether or not each prereq package is installed was not updated with the new SP1 product codes for the VC redist packages.  This will cause detection to always return false, even if the VC redist SP1 package is already installed.  That means that if you use this bootstrapper for your setup, it will download and install the VC redist SP1 packages in some cases where it otherwise would not need to because it can incorrectly determine that it is not installed in cases where it actually is installed.  This won't harm your application functionality because the VC redist will eventually get installed, but it can cause a little longer installation experience because it could download unnecessary packages.

  • A reader of the previous post on my blog has posted two questions about using SP1 version of VCRedist.EXE

  • There are a several prerequisite dependencies that must be satisfied on a Windows system that does not

  • There are a several prerequisite dependencies that must be satisfied on a Windows system that does not

  • Question: I saw a couple of previous blog posts that you wrote about how to detect the presence of the

  • Question: You previously posted a list of command line switches to perform silent and unattended installations

  • Visual C++ 2005 SP1 MFC Security Update runtime files (MS11-025) - GUIDs for all platforms

    •Visual C++ 2005 SP1 MFC Security Update Redistributable Package  (x86) - {710f4c1c-cc18-4c49-8cbf-51240c89a1a2}

    •Visual C++ 2005 SP1 MFC Security Update Redistributable Package  (x64)  - {ad8a2fa1-06e7-4b0d-927d-6e54b3d31028}

    •Visual C++ 2005 SP1 MFC Security Update Redistributable Package  (IA64)  - {c2f60bda-462a-4a72-8e4d-ca431a56e9ea}

  • Hi Srinivas Bringu (MS) - Thank you for these product codes.  I'll add them to the main blog post as well.

Page 1 of 1 (10 items)
Leave a Comment
  • Please add 3 and 6 and type the answer here:
  • Post