How To Determine the .NET Framework Installed Versions
This topic is a how to. Please keep it as clear and simple as possible. Avoid speculative discussions as well as a deep dive into underlying mechanisms or related technologies. |
Introduction
You can install and run multiple versions of the .NET Framework on a computer and each version can be installed in any order.
Starting from Windows XP, the operating system comes with a .NET Framework version installed and ready for use; the user can install a more recent version to get all the advantages that comes with the newest class libraries and namespaces provided by the most recent versions of the .NET Framework.
The Microsoft.NET\Framework Folder
Each .NET Framework version can be installed side-by-side and each version's files will be installed into a subfolder of the Windows main directory, identified by the environment variable %WINDIR%. To see which versions are installed, look into the %WINDIR% directory for the Microsoft.NET\Framework folder (you should also view the Framework64 directory if you're running a 64-bit operating system, which can have 32 or 64-bit versions installed or both): each version of the .NET Framework has a directory and the first two digits of the directory name identify the .NET Framework version; for example: v1.1.4322 for the .NET Framework 1.1, v2.0.50727 for the .NET Framework 2.0, v3.5 for the .NET Framework 3.5 and so on.
Figure 1 depicts the folders containing the files for multiple .NET Framework version installed on a computer running Windows 7 Ultimate x64 Service Pack 1.
Figure 1: .NET Framework version specific subfolders.
Registry Keys
The informations related to the .NET Framework installation (along with the informations regarding the status of the installed Service Packs) are stored in the Windows registry under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP key. Figure 2 depicts the registry keys for multiple .NET Framework version installed on a computer running Windows 7 Ultimate x64 Service Pack 1.
Figure 2: .NET Framework version specific registry keys.
Table 1 provides a list of the stored values according to each installed .NET Framework version.
.NET Framework Version | Service Pack Level | Registry Key Name | Value |
---|---|---|---|
4 - Client | Original Release | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client | Name: Version, Type: REG_SZ, Data: 4.0.30319.0 | ||
4 - Full | Original Release | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full | Name: Version, Type: REG_SZ, Data: 4.0.30319.0 | ||
3.5 | Original Release | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 | Name: SP, Type: REG_DWORD, Data: 0 | ||
3.5 | Service Pack 1 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 | Name: SP, Type: REG_DWORD, Data: 1 | ||
3.0 | Original Release | Follow the deployment and detection guidance in the document "Microsoft .NET Framework 3.0 Deployment Guide" on the MSDN Library | |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 | Name: SP, Type: REG_DWORD, Data: 0 | ||
3.0 | Service Pack 1 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 | Name: SP, Type: REG_DWORD, Data: 1 | ||
3.0 | Service Pack 2 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 | Name: SP, Type: REG_DWORD, Data: 2 | ||
2.0 | Original Release | HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | Name: SP, Type: REG_DWORD, Data: 0 | ||
2.0 | Service Pack 1 | HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | Name: SP, Type: REG_DWORD, Data: 1 | ||
2.0 | Service Pack 2 | HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | Name: SP, Type: REG_DWORD, Data: 2 | ||
1.1 (on 32-bit operating systems) | Original Release | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 | Name: SP, Type: REG_DWORD, Data: 0 | ||
1.1 (on 32-bit operating systems) | Service Pack 1 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 | Name: Install, Type: REG_DWORD, Data: 1 |
1.1 (on 64-bit operating systems) | Original Release | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 | Name: SP, Type: REG_DWORD, Data: 0 | ||
1.1 (on 64-bit operating systems) | Service Pack 1 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 | Name: Install, Type: REG_DWORD, Data: 1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 | Name: SP, Type: REG_DWORD, Data: 1 | ||
1.0 (on supported platforms except for Windows XP Media Center and Tablet PC) | Original Release | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} | Name: Version, Type: REG_SZ, Data: 1.0.3705.0 |
1.0 (on supported platforms except for Windows XP Media Center and Tablet PC) | Service Pack 1 | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} | Name: Version, Type: REG_SZ, Data: 1.0.3705.1 |
1.0 (on supported platforms except for Windows XP Media Center and Tablet PC) | Service Pack 2 | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} | Name: Version, Type: REG_SZ, Data: 1.0.3705.2 |
1.0 (on supported platforms except for Windows XP Media Center and Tablet PC) | Service Pack 3 | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} | Name: Version, Type: REG_SZ, Data: 1.0.3705.3 |
1.0 (shipped with Windows XP Media Center 2002/2004 and Tablet PC 2004) | Service Pack 2 | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24} | Name: Version, Type: REG_SZ, Data: 1.0.3705.2 |
1.0 (shipped with Windows XP Media Center 2005 and Tablet PC 2005) | Service Pack 3 | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24} | Name: Version, Type: REG_SZ, Data: 1.0.3705.3 |
Table 1: .NET Framework version specific registry keys values.
To detect the existence of a specific .NET Framework version regardless of the Service Pack level, or to detect a service pack level or a later service pack level of the same .NET Framework version, use the registry information that listed Table 2.
.NET Framework Version | Service Pack Level | Registry Key Name | Value |
---|---|---|---|
4 - Client | Any Version | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client | Install = 1 |
4 - Full | Any Version | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full | Install = 1 |
3.5 | Any Version | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 | Install = 1 |
3.5 | Service Pack 1 or Greater | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 | SP >= 1 |
3.0 | Any Version | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 | Install = 1 |
3.0 | Service Pack 1 or Greater | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 | SP >= 1 |
3.0 | Service Pack 2 or Greater | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 | SP >= 2 |
2.0 | Any Version | HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | Install = 1 |
2.0 | Service Pack 1 or Greater | HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | SP >= 1 |
2.0 | Service Pack 2 or Greater | HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | SP >= 2 |
1.1 | Any Version | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 | Install = 1 |
1.1 | Service Pack 1 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322 | SP >= 1 |
1.0 | Any Version | HKEY_LOCAL_MACHINE\Software\Microsoft\.NET Framework\Policy\v1.0 | Name: 3705, Type: REG_SZ, exists |
1.0 (on supported platforms except for Windows XP Media Center and Tablet PC) | Service Pack 1 or Greater | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} | Version >= 1.0.3705.1 |
1.0 (on supported platforms except for Windows XP Media Center and Tablet PC) | Service Pack 2 or Greater | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} | Version >= 1.0.3705.2 |
1.0 (on supported platforms except for Windows XP Media Center and Tablet PC) | Service Pack 3 or Greater | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd} | Version >= 1.0.3705.3 |
1.0 (shipped with Windows XP Media Center 2002/2004 and Tablet PC 2004) | Service Pack 2 or Greater | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24} | Version >= 1.0.3705.2 |
1.0 (shipped with Windows XP Media Center 2005 and Tablet PC 2005) | Service Pack 3 or Greater | HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24} | Version >= 1.0.3705.2 |
Table 2: .NET Framework version specific registry keys values regardless of the Service Pack level.
Determining the .NET Framework Version by Script
You can use the PowerShell script to get the .NET Framework info on your computer: How to determine versions & service pack levels of .NET Framework by PowerShell.
Determining the .NET Framework Version by Code
The .NET Framework version can be determined by writing code that queries the Common Language Runtime (CLR) version by using the Version property of the System.Environment class, as in the following C# code snippet
using System;
class Sample
{
public static void Main()
{
Console.WriteLine();
Console.WriteLine("Version: {0}", Environment.Version.ToString());
}
}
If you compile this program with the .NET Framework 3.5, this property's value will be "2.0.50727.3603".
The CLRVER Tool
The CLR Version tool (Clrver.exe) reports all the installed versions of the Common Language Runtime (CLR) on the computer. This tool is automatically installed with Visual Studio and with the Windows SDK and it must be executed from the Visual Studio Command Prompt or the Windows SDK Command Prompt.
At the command prompt type the following
clrver [option]
where [option] can be -all to display all the managed processes and the version of the CLR they are using, -? to display command syntax and options for the tool or pid to display the version(s) of the CLR used by the process that has the specified process ID. Running the tool with no options displays all installed CLR versions.
Other Languages
This article is also available in the following languages: