Detecting Visual Studio 2008 Service Pack 1

Avatar

Heath

The Visual Studio 2008 RTM and SP1 detection keys are largely the same as the Visual Studio 2005 SP1 detection keys, and are documented below. But there is a caveat for released and upcoming versions: the shared detection value can be overwritten by an older installation of the same release.

For example, if you installed VS2008 Professional, then installed VS2008 SP1, and after that installed Team Foundation Client (TFC) 2008 RTM, the shared detection value is reset to 0 instead of 1. To be sure SP1 is installed, you need to detect SP1 on specific editions of Visual Studio 2008 or any other of our 2008 product releases including .NET 3.5 RTM and SP1.

Product family detection value

Product families define a group of products with similar functionality. The “VS” product family, for example, includes many editions but defines all full SKUs of the Visual Studio IDE. To find the service pack level of a product family, search for the following registry value.

Key: HKEY_LOCAL_MACHINESoftwareMicrosoftDevDiv[ProductFamily]Servicing9.0
Value (REG_DWORD): SP

The exception is for product families “NetFX” and “WPF” that use version 3.5 instead of 9.0.

If the registry value is 0, the RTM version of the product family is installed. If the value is 1, then SP1 is installed on the product family.

Keep in mind, however, that this value is shared by all editions within a product family. If an older product edition is installed after a newer product edition within the same product family, the value will be overwritten. To detect whether SP1 is installed you need to check individual product editions.

Product families released for the 2008 wave of products include,

  • NetFX, WPF: .NET Framework 2.0, 3.0, and 3.5 including Windows Presentation Framework
  • RDBG: Visual Studio 2008 Remote Debugger
  • TRIN: Visual Studio Tools for the Office System 3.0 Runtime
  • VB: Visual Basic 2008 Express Edition
  • VC: Visual C++ 2008 Express Edition
  • VCS: Visual C# 2008 Express Edition
  • VNS: Visual Web Developer 2008 Express Edition
  • VS: Visual Studio 2008 Professional, Visual Studio Team System 2008 Team Suite, etc.
  • VSTF: Visual Studio 2008 Team Explorer, Visual Studio 2008 Team Test Load Agent, etc.

Product edition detection value

A product family may install one or more editions. The “VS” product family, for example, contains several editions including “PRO” (Professional”), “VSTS” (Team Suite), and more. To find the service pack level of a product edition, search for the following registry value:

Key: HKEY_LOCAL_MACHINESoftwareMicrosoftDevDiv[ProductFamily]Servicing9.0[ProductEdition][ProductLanguage]
Value (REG_DWORD): SP

The exceptions are for product families “NetFX” and “WPF” that use version 3.5 instead of 9.0, and do not specify a ProductEdition. For .NET itself, the language is always 1033 unless you’re detecting the SP level for a language pack that uses the LCID for a specific culture.

So for .NET, you would check the following registry value:

Key: HKEY_LOCAL_MACHINESoftwareMicrosoftDevDivNetFXServicing3.51033
Value (REG_DWORD): SP

For either Visual Studio or .NET, if the registry value is 0, the RTM versions of the product family are installed. If the value is 1, then SP1 is installed on the product family.

The ProductLanguage is the LCID of the product installed, such as 1033 for English (US).

The following table contains the list of released product families, editions, and the product names.

ProductFamilyProductEditionProductName
dynamicanalysiscollectionbitsMicrosoft Visual Studio 2008 Performance Collection Tools – ENU
HHDEXMicrosoft Document Explorer 2008
MSDNEXPMSDN Library for Microsoft Visual Studio 2008 Express Editions
MSDVMSDN9.0MSDN Library for Visual Studio 2008 – ENU
RDBGSTDMicrosoft Visual Studio 2008 Remote Debugger – ENU
SDEVSDMicrosoft Device Emulator version 3.0 – ENU
TRINAIDEMicrosoft Visual Studio Tools for Applications 2.0 – ENU
TRINARTMicrosoft Visual Studio Tools for Applications 2.0 Runtime
TRINTRIRVisual Studio Tools for the Office system 3.0 Runtime
VBROSMicrosoft Report Viewer Redistributable 2008
VBEXPMicrosoft Visual Basic 2008 Express Edition – ENU
VCSEXPMicrosoft Visual C# 2008 Express Edition – ENU
VCREDMicrosoft Visual C++ 2008 Redistributable – x86 9.0.21022
VCSTDMicrosoft Visual C++ 2008 Standard Edition – enu
VCEXPMicrosoft Visual C++ 2008 Express Edition – ENU
VNSEXPMicrosoft Visual Web Developer 2008 Express Edition – ENU
VSSSTDMicrosoft Visual SourceSafe 2008 – ENU
vstfatMicrosoft Visual Studio 2008 Team Foundation Server – ENU
VSTFATPMicrosoft Visual Studio 2008 Team Foundation Server Proxy – ENU
VSTFbbMicrosoft Visual Studio 2008 Team Foundation Server Build – ENU
VSTFdteaMicrosoft Visual Studio 2008 Team Test Load Agent- ENU
VSTFdtecMicrosoft Visual Studio 2008 Team Test Load Controller- ENU
VSTFPERFMicrosoft Visual Studio 2008 Performance Tools – ENU
vstftfcMicrosoft Visual Studio 2008 Team Explorer – ENU
vstfwssExtMicrosoft Visual Studio 2008 Team Foundation Server SharePoint Extensions – ENU
VSIDEMicrosoft Visual Studio Shell 2008 – ENU
VSIDEMicrosoft Visual Studio 2008 Shell (integrated mode) – ENU
VSPROMicrosoft Visual Studio 2008 Professional Edition – ENU
VSSTDMicrosoft Visual Studio 2008 Standard Edition – ENU
VSVSDBVisual Studio Team System 2008 Database Edition – ENU
VSVSRMicrosoft Primary Interoperability Assemblies 2005
VSVSTAMicrosoft Visual Studio Team System 2008 Architecture Edition – ENU
VSVSTDMicrosoft Visual Studio Team System 2008 Development Edition – ENU
VSVSTSMicrosoft Visual Studio Team System 2008 Team Suite – ENU
VSVSTTMicrosoft Visual Studio Team System 2008 Test Edition – ENU

Detection in Windows Installer XML

WiX v3 contains a number of properties to detect the SP level. Aaron Stebner has provided a good post that describes how.

Avatar
Heath Stewart

Senior Software Engineer

Follow Heath   

No Comments.