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:
- Call the MsiQueryProductStateAPI
- Pass in the product code for the package that you want to detect based on the list below
- 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 Redistributable Package (x86) - {A49F249F-0C91-497F-86DF-B2585E8E76B7}
- Visual C++ 2005 Redistributable Package (x64) - {6E8E85E8-CE4B-4FF5-91F7-04999C9FAE6A}
- Visual C++ 2005 Redistributable Package (ia64) - {03ED71EA-F531-4927-AABD-1C31BCE8E187}
Visual C++ 2005 SP1 runtime files
- Visual C++ 2005 SP1 Redistributable Package (x86) - {7299052B-02A4-4627-81F2-1818DA5D550D}
- Visual C++ 2005 SP1 Redistributable Package (x64) - {071C9B48-7C32-4621-A0AC-3F809523288F}
- Visual C++ 2005 SP1 Redistributable Package (ia64) - {0F8FB34E-675E-42ED-850B-29D98C2ECE08}
Visual C++ 2005 SP1 ATL Security Update runtime files
- Visual C++ 2005 SP1 ATL Security Update Redistributable Package (x86) - {837B34E3-7C30-493C-8F6A-2B0F04E2912C}
- Visual C++ 2005 SP1 ATL Security Update Redistributable Package (x64) - {6CE5BAE9-D3CA-4B99-891A-1DC6C118A5FC}
- Visual C++ 2005 SP1 ATL Security Update Redistributable Package (ia64) - {85025851-A784-46D8-950D-05CB3CA43A13}
Visual C++ 2005 SP1 MFC Security Update runtime files
- 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}
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>
Comments
Anonymous
January 27, 2007
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). :)Anonymous
April 02, 2007
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 LtdAnonymous
April 02, 2007
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.Anonymous
April 02, 2007
A reader of the previous post on my blog has posted two questions about using SP1 version of VCRedist.EXEAnonymous
February 29, 2008
There are a several prerequisite dependencies that must be satisfied on a Windows system that does notAnonymous
February 29, 2008
There are a several prerequisite dependencies that must be satisfied on a Windows system that does notAnonymous
January 29, 2009
Question: I saw a couple of previous blog posts that you wrote about how to detect the presence of theAnonymous
March 26, 2009
The comment has been removedAnonymous
January 16, 2012
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}Anonymous
January 16, 2012
Hi Srinivas Bringu (MS) - Thank you for these product codes. I'll add them to the main blog post as well.Anonymous
October 31, 2016
HelloCan someone here could explain the differences of these Redist 2005 versions? How are they differ to each other? I just understand that Visual C++ 2005 runtime SP1 is an update from Visual C++ 2005 runtime How about these redist?Visual C++ 2005 SP1 ATL Security Update runtime filesVisual C++ 2005 SP1 MFC Security Update runtime files- Anonymous
November 07, 2016
Hi aJeff - The redistributables for the ATL and MFC security updates are used to deliver security fixes for some of the VC++ runtime files. If an application is built with those versions of the VC++ runtime files, then they can package the corresponding redistributable packages with their installer in order to install the VC++ runtime files that the app needs.Other than the naming, these redistributables are not conceptually any different than the redistributable for the VC++ 2005 SP1 runtimes.
- Anonymous
Anonymous
January 30, 2017
Hi. We have build our app using C++ 2005 redistributable package in version 8.0.50727.762 (for mfc80u.dll for example). Some of our customers has versions between 8.0.50727.4000-6000 and it cause a crash in our app. In our developer and test PCs there is installed version 8.0.50727.9185 which works fine. But we don't know where this version comes from. I can't find any information about this specific file version source. Can anyone help with that? Is there any list of all new 2005 redist upgrades and fixes? Maybe there is another way to know the patch number that have installed this dll?- Anonymous
February 03, 2017
Hi Bartosz - I don't know of a list of all VC++ 2005 redistributable packages that have been shipped. I'd suggest posting a question on the Visual Studio setup forum at https://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=vssetup to see if someone there can help with this question.
- Anonymous