May 29th, 2009

Detecting Visual Studio 2008 Service Pack 1

Heath Stewart
Principal Software Engineer

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.

ProductFamily ProductEdition ProductName
dynamicanalysis collectionbits Microsoft Visual Studio 2008 Performance Collection Tools – ENU
HH DEX Microsoft Document Explorer 2008
MSDN EXP MSDN Library for Microsoft Visual Studio 2008 Express Editions
MSDV MSDN9.0 MSDN Library for Visual Studio 2008 – ENU
RDBG STD Microsoft Visual Studio 2008 Remote Debugger – ENU
SDE VSD Microsoft Device Emulator version 3.0 – ENU
TRIN AIDE Microsoft Visual Studio Tools for Applications 2.0 – ENU
TRIN ART Microsoft Visual Studio Tools for Applications 2.0 Runtime
TRIN TRIR Visual Studio Tools for the Office system 3.0 Runtime
VB ROS Microsoft Report Viewer Redistributable 2008
VB EXP Microsoft Visual Basic 2008 Express Edition – ENU
VCS EXP Microsoft Visual C# 2008 Express Edition – ENU
VC RED Microsoft Visual C++ 2008 Redistributable – x86 9.0.21022
VC STD Microsoft Visual C++ 2008 Standard Edition – enu
VC EXP Microsoft Visual C++ 2008 Express Edition – ENU
VNS EXP Microsoft Visual Web Developer 2008 Express Edition – ENU
VSS STD Microsoft Visual SourceSafe 2008 – ENU
vstf at Microsoft Visual Studio 2008 Team Foundation Server – ENU
VSTF ATP Microsoft Visual Studio 2008 Team Foundation Server Proxy – ENU
VSTF bb Microsoft Visual Studio 2008 Team Foundation Server Build – ENU
VSTF dtea Microsoft Visual Studio 2008 Team Test Load Agent- ENU
VSTF dtec Microsoft Visual Studio 2008 Team Test Load Controller- ENU
VSTF PERF Microsoft Visual Studio 2008 Performance Tools – ENU
vstf tfc Microsoft Visual Studio 2008 Team Explorer – ENU
vstf wssExt Microsoft Visual Studio 2008 Team Foundation Server SharePoint Extensions – ENU
VS IDE Microsoft Visual Studio Shell 2008 – ENU
VS IDE Microsoft Visual Studio 2008 Shell (integrated mode) – ENU
VS PRO Microsoft Visual Studio 2008 Professional Edition – ENU
VS STD Microsoft Visual Studio 2008 Standard Edition – ENU
VS VSDB Visual Studio Team System 2008 Database Edition – ENU
VS VSR Microsoft Primary Interoperability Assemblies 2005
VS VSTA Microsoft Visual Studio Team System 2008 Architecture Edition – ENU
VS VSTD Microsoft Visual Studio Team System 2008 Development Edition – ENU
VS VSTS Microsoft Visual Studio Team System 2008 Team Suite – ENU
VS VSTT Microsoft 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.

Author

Heath Stewart
Principal Software Engineer

Heath is an application architect and developer, looking to help educate others to learn professional development. Besides designing and developing applications he enjoys writing about intermediate and advanced topics. Heath also consults for deployment packages and scenarios within Microsoft and for external customers.

0 comments

Discussion are closed.