Detecting Visual Studio 2008 Service Pack 1
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.
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:
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:
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.
|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.