How do I find the .NET version?
.Net.Net Problem Overview
How do I find out which version of .NET is installed?
I'm looking for something as simple as "java -version" that I can type at the command prompt and that tells me the current version(s) installed.
I better add that Visual Studio may not be installed - this is typically something that I want to know about a client machine.
.Net Solutions
Solution 1 - .Net
There is an easier way to get the exact version .NET version installed on your machine from a cmd prompt. Just follow the following instructions;
- Open the command prompt (i.e Windows + R → type "cmd").
- Type the following command, all on one line:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"
(This will list all the .NET versions.)
- If you want to check the latest .NET 4 version.
- Type following instruction, on a single line:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version
Please find the attached image below to see how it is shown.
Solution 2 - .Net
Just type any one of the below commands to give you the latest version in the first line.
1. CSC
2. GACUTIL /l ?
3. CLRVER
You can only run these from the Visual Studio Command prompt if you have Visual Studio installed, or else if you have the .NET framework SDK, then the SDK Command prompt.
4. wmic product get description | findstr /C:".NET Framework"
5. dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*
The last command (5) will list out all the versions (except 4.5) of .NET installed, latest first.
You need to run the 4th command to see if .NET 4.5 is installed.
Another three options from the PowerShell command prompt is given below.
6. [environment]::Version
7. $PSVersionTable.CLRVersion
8. gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 |
where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release
The last command (8) will give you all versions, including .NET 4.5.
Solution 3 - .Net
This answer is applicable to .NET Core only!
Typing dotnet --version
in your terminal of choice will print out the version of the .NET Core SDK in use.
Learn more about the dotnet
command here.
Solution 4 - .Net
Before going to a command prompt, please follow these steps...
Open My Computer → double click "C:" drive → double click "Windows" → double click "Microsoft.NET" → double click "Framework" → Inside this folder, there will be folder(s) like "v1.0.3705" and/or "v2.0.50727" and/or "v3.5" and/or "v4.0.30319".
Your latest .NET version would be in the highest v number folder, so if v4.0.30319 is available that would hold your latest .NET framework. However, the v4.0.30319 does not mean that you have the .NET framework version 4.0. The v4.0.30319 is your Visual C# compiler version, therefore, in order to find the .NET framework version do the following.
Go to a command prompt and follow this path:
C:\Windows\Microsoft.NET\Framework\v4.0.30319 (or whatever the highest v number folder)
C:\Windows\Microsoft.NET\Framework\v4.0.30319 > csc.exe
Output:
Microsoft (R) Visual C# Compiler version 4.0.30319.17929 for Microsoft (R) .NET Framework 4.5 Copyright (C) Microsoft Corporation. All rights reserved.
Example below:
Solution 5 - .Net
.NET Version Detector is a GUI utility that displays which of the six(!) versions of the framework are installed.
Solution 6 - .Net
For the version of the framework that is installed, it varies depending on which service packs and hotfixes you have installed. Take a look at this MSDN page for more details. It suggests looking in %systemroot%\Microsoft.NET\Framework
to get the version.
Environment.Version will programmatically give you the version of the CLR.
Note that this is the version of the CLR, and not necessarily the same as the latest version of the framework you have installed (.NET 3.0 and 3.5 both use v2 of the CLR).
Solution 7 - .Net
MSDN details it here very nicely on how to check it from registry:
> To find .NET Framework versions by viewing the registry (.NET
> Framework 1-4)
>
> 1. On the Start menu, choose Run.
> 2. In the Open box, enter regedit.exe.You must have administrative credentials to run regedit.exe.
> 3. In the Registry Editor, open the following subkey:
>
> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
>
> The installed versions are listed under the NDP subkey. The version
> number is stored in the Version entry. For the .NET Framework 4 the
> Version entry is under the Client or Full subkey (under NDP), or under
> both subkeys.
>
> To find .NET Framework versions by viewing the registry (.NET
> Framework 4.5 and later)
>
> 1. On the Start menu, choose Run.
> 2. In the Open box, enter regedit.exe. You must have administrative credentials to run regedit.exe.
> 3. In the Registry Editor, open the following subkey:
>
> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
>
> Note that the path to the Full subkey includes the subkey Net
> Framework rather than .NET Framework
>
> Check for a DWORD value named Release
. The existence of the Release
> DWORD indicates that the .NET Framework 4.5 or newer has been
> installed on that computer.
>
>
Note: The last row in the above snapshot which got clipped reads On all other OS versions: 461310
. I tried my level best to avoid the information getting clipped while taking the screenshot but the table was way too big.
Solution 8 - .Net
Just type the following in the command line:
dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*
Your dotnet version will be shown as the highest number.
Solution 9 - .Net
If you open a command prompt and type the following two commands, all framework versions that are installed on the current machine will be listed (each one is stored in a separate directory within this directory).
cd %systemroot%\Microsoft.NET\Framework
dir /A:D
Solution 10 - .Net
If you do this fairly frequently (as I tend to do) you can create a shortcut on your desktop as follows:
- Right click on the desktop and select New → Shortcut.
- In the location field, paste this string:
powershell.exe -noexit -command "gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 | where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release"
(this is from Binoj Antony's post). - Hit Next. Give the shortcut a name and Finish.
(NOTE: I am not sure if this works for 4.5, but I can confirm that it does work for 4.6, and versions prior to 4.5.)
Solution 11 - .Net
My god, so much mess to find version of installed .net framework?
Windows > Search > Visual Studio Installer > for installed version of VS, tap on More > Modify > Individual Components and see it there:
Solution 12 - .Net
To just get the installed version(s) at the command line, I recommend using net-version.
- It's just a single binary.
- It uses the guidelines provided my Microsoft to get version information.
- It doesn't require the SDK to be installed.
- Or the Visual Studio command prompt.
- It doesn't require you to use regedit and hunt down registry keys yourself. You can even pipe the output in a command line tool if you need to.
Source code is available on github.com
Full disclosure: I created this tool myself out of frustration.
Solution 13 - .Net
Here is the Power Shell script which I used by taking the reference of:
https://stackoverflow.com/a/3495491/148657
$Lookup = @{
378389 = [version]'4.5'
378675 = [version]'4.5.1'
378758 = [version]'4.5.1'
379893 = [version]'4.5.2'
393295 = [version]'4.6'
393297 = [version]'4.6'
394254 = [version]'4.6.1'
394271 = [version]'4.6.1'
394802 = [version]'4.6.2'
394806 = [version]'4.6.2'
460798 = [version]'4.7'
460805 = [version]'4.7'
461308 = [version]'4.7.1'
461310 = [version]'4.7.1'
461808 = [version]'4.7.2'
461814 = [version]'4.7.2'
528040 = [version]'4.8'
528049 = [version]'4.8'
}
# For One True framework (latest .NET 4x), change the Where-Oject match
# to PSChildName -eq "Full":
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
Get-ItemProperty -name Version, Release -EA 0 |
Where-Object { $_.PSChildName -match '^(?!S)\p{L}'} |
Select-Object @{name = ".NET Framework"; expression = {$_.PSChildName}},
@{name = "Product"; expression = {$Lookup[$_.Release]}},
Version, Release
The above script makes use of the registry and gives us the Windows update number along with .Net Framework installed on a machine.
Here are the results for the same when running that script on two different machines
- Where .NET 4.7.2 was already installed:
- Where .NET 4.7.2 was not installed:
Solution 14 - .Net
open cmd prompt type:
dotnet --info
Solution 15 - .Net
Try .NET Checker
by Scott Hanselman.
Solution 16 - .Net
clrver
is an excellent one. Just execute it in the .NET prompt and it will list all available framework versions.
Solution 17 - .Net
If you'r developing some .Net app (for ex. web app), you can make 1 line of error code (like invoke wrong function name) and reload your page, the .Net version will be show
Solution 18 - .Net
For anyone running Windows 10 1607 and looking for .net 4.7. Disregard all of the above.
It's not in the Registry, C:\Windows\Microsoft.NET folder or the Installed Programs list or the WMIC display of that same list.
Look for "installed updates" KB3186568.
Solution 19 - .Net
Per Microsoft in powershell:
Get-ChildItem "hklm:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\" | Get-ItemPropertyValue -Name Release | % { $_ -ge 394802 }
See the table at this link to get the DWORD value to search for specific versions: