How to determine whether or not a VS 2002 or VS 2003 product is installed on a computer

A while back, I wrote this blog post that listed registry values that could be used to detect the presence of each individual edition of Visual Studio 2005.  Recently, I was asked for a similar list of registry values for Visual Studio .NET 2002 and 2003, so I did some research and dug up a list of registry values that can be used for this purpose.

Detecting Visual Studio .NET 2002

You can use the following registry values to detect whether or not each edition of Visual Studio .NET 2002 is installed:

  • Visual Studio .NET 2002 Enterprise Architect Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS\Arch\ProductDir
  • Visual Studio .NET 2002 Enterprise Developer Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS\Ent\ProductDir
  • Visual Studio .NET 2002 Professional Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS\Pro\ProductDir
  • Visual Studio .NET 2002 Academic Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS\Acad\ProductDir
  • Visual Studio .NET 2002 Trial Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS\Trial\ProductDir
  • Visual Studio .NET 2002 Partner Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS\IDE\ProductDir
  • Visual Basic .NET 2002 Standard Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VB\Std\ProductDir
  • Visual C++ .NET 2002 Standard Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0Setup\Servicing\SKU\<product name>
  • Visual C# .NET 2002 Standard Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\Servicing\SKU\<product name>

In the above registry values, ProductDir is a REG_SZ value that specifies a fully qualified path to the Visual Studio .NET 2002 root installation directory.  By default, this value will be set to c:\Program Files\Microsoft Visual Studio .NET, but will be different if the user has installed Visual Studio .NET 2002 to a non-default path.

The value <product name> resolves to the exact name of the product in question.  For example, Visual C++ .NET Standard - English or Visual C# .NET Standard - English.  Note that this value is language-specific, so you will need to perform a sub-string search for registry values listed above that include <product name> or search for each of the possible languages - Chinese (Simplified), Chinese (Traditional), English, French, German, Italian, Japanese, Korean or Spanish.

If you do not care which edition is installed, you can use the following registry value to detect whether or not any edition of Visual Studio .NET 2002 is installed:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VS\EnvironmentPath

EnvironmentPath is a REG_SZ value that specifies a fully qualified path to the file devenv.exe.

Detecting Visual Studio .NET 2003

You can use the following registry values to detect whether or not each edition of Visual Studio .NET 2003 is installed:

  • Visual Studio .NET 2003 Enterprise Architect Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS\Arch\ProductDir
  • Visual Studio .NET 2003 Enterprise Developer Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS\Ent\ProductDir
  • Visual Studio .NET 2003 Professional Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS\Pro\ProductDir
  • Visual Studio .NET 2003 Academic Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS\Acad\ProductDir
  • Visual Studio .NET 2003 Trial Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS\Trial\ProductDir
  • Visual Studio .NET 2003 Partner Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VS\IDE\ProductDir
  • Visual Basic .NET 2003 Standard Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VB\Std\ProductDir
  • Visual C++ .NET 2003 Standard Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Setup\Servicing\SKU\<product name>
  • Visual C# .NET 2003 Standard Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Setup\Servicing\SKU\<product name>
  • Visual J# .NET 2003 Standard Edition - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<product name>\UninstallString

In the above registry values, ProductDir is a REG_SZ value that specifies a fully qualified path to the Visual Studio .NET 2003 root installation directory.  By default, this value will be set to c:\Program Files\Microsoft Visual Studio .NET 2003, but will be different if the user has installed Visual Studio .NET 2003 to a non-default path.

The value <product name> resolves to the exact name of the product in question.  For example, Visual C++ .NET Standard 2003 - English, Visual C# .NET Standard 2003 - English or Visual J# .NET Standard 2003 - English.  Note that this value is language-specific, so you will need to perform a sub-string search for registry values listed above that include <product name> or search for each of the possible languages - Chinese (Simplified), Chinese (Traditional), English, French, German, Italian, Japanese, Korean or Spanish.

If you do not care which edition is installed, you can use the following registry value to detect whether or not any edition of Visual Studio .NET 2003 is installed:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7\7.1

7.1 is a REG_SZ value that specifies a fully qualified path to the Visual Studio .NET 2003 root installation directory.  By default, this value will be set to c:\Program Files\Microsoft Visual Studio .NET 2003, but will be different if the user has installed Visual Studio .NET 2003 to a non-default path.