如何找到.NET版本?


258

如何找出安装了哪个版本的.NET?

我正在寻找可以在命令提示符下键入的“ java -version”之类的简单信息,它告诉我当前安装的版本。

我最好补充一点,就是可能未安装Visual Studio,这是我通常想了解的有关客户端计算机的内容。


2
去运行并执行以下命令:wmic / namespace:\\ root \ cimv2 path win32_product其中“类似'%%。NET %%'的名称”获得版本
HENG Vongkol


Answers:


250

只需键入以下任何命令,即可在第一行中为您提供最新版本。

1. CSC
2. GACUTIL /l ?
3. CLRVER

如果已安装Visual Studio,则只能从Visual Studio命令提示符运行这些命令;否则,如果您具有.NET Framework SDK,则只能从SDK命令提示符运行这些命令。

4. wmic product get description | findstr /C:".NET Framework"
5. dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

最后一个命令(5)将列出安装的.NET的所有版本(4.5除外),最新的优先
您需要运行第4条命令以查看是否已安装.NET 4.5。

下面是PowerShell命令提示符中的另外三个选项。

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

最后一个命令(8)将为您提供所有版本,包括.NET 4.5。


6
“ CSC”仅在Visual Studio命令提示符下工作(默认情况下)。它还只会为您提供编译器版本所针对的.NET Framework的最高版本。-如果您安装了VS2005和VS2008,则不同版本的CSC将报告不同版本。
马特·莱西

15
csc输出C#编译器的版本,而不是.NET Framework的版本。
Timwi

4
即使我认为已安装,最后一个命令也没有返回版本4.5。在stackoverflow.com/questions/3487265/…上的答案包括了它。
lmsurprenant 2015年

2
最后一个命令未显示最新版本。我们可以在appwiz.cpl或“ wmic product”命令中查找版本也很有帮助。Windows-commandline.com/find-net-version-on-your-computer
Giri

11
为8号加油!
莱昂内·陈

330

有一种更简便的方法,可从cmd提示符下获取安装在计算机上的确切.NET版本。只需遵循以下说明;

  1. 打开命令提示符(即Windows + R→键入“ cmd”)。
  2. 在一行上键入以下命令:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"

(这将列出所有.NET版本。)

  1. 如果要检查最新的.NET 4版本。
  2. 在一行上键入以下指令:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version

请在下面找到所附图片以查看其显示方式。

在此处输入图片说明


4
发现这是最简单,最精确的方法(末尾带有“ * \ v4 \ Full”),因为它也可以通过一个简单的命令获得次要版本。
IgnasVyšnia'16

1
真好 想要可以在用户PC上运行的东西,就是这样。谢谢!
凯利


6
不错,但是没有显示我的Windows 7计算机上安装的4.5、4.6和4.7框架:(
Zeek2

不太准确;我在控制面板>程序和功能下查看,并且没有.NET的迹象。但是,我运行了您的命令,它给了我输出HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4.0。可能是.NET曾经安装在我的计算机上,没有被取消注册,但注册表没有被清除
Newton fan


30

在转到命令提示符之前,请按照以下步骤操作...

打开我的电脑 →双击“ C: ”驱动器→双击“ Windows ”→双击“ Microsoft.NET ”→双击“ 框架” ”→在此文件夹中,将存在诸如“ v1.0.3705”的文件夹,并且/或“ v2.0.50727”和/或“ v3.5”和/或“ v4.0.30319”。

您的最新.NET版本将位于最高的v号文件夹中,因此,如果有v4.0.30319可用,它将保存您的最新.NET框架。但是,v4.0.30319并不意味着您具有.NET Framework 4.0版。v4.0.30319是您的Visual C#编译器版本,因此,为了找到.NET Framework版本,请执行以下操作。

转到命令提示符并遵循以下路径:

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319(或具有最高v编号的文件夹)

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319> csc.exe

输出:

Microsoft(R).NET Framework 4.5的 Microsoft(R)Visual C#编译器版本4.0.30319.17929 版权所有(C)Microsoft Corporation。版权所有。

下面的例子:

在此处输入图片说明


2
相当不错,但输出是不同的,至少在我的服务器-无“为”被列入消息:lh4.googleusercontent.com/-p7Fu5GDj0cg/UywSqPTdQjI/AAAAAAAAALQ/...
Nenotlep

2
更改目录类型:cd C:\Windows\Microsoft.NET\Framework\v4.0.30319然后键入csc.exe,希望对您有所帮助。
shaijut

1
当您通过受限用户帐户登录时,它最有效。
Rzassar

10

此答案仅适用于.NET Core!

dotnet --version在您选择的终端中键入将打印出正在使用的.NET Core SDK版本。

此处了解有关dotnet命令的更多信息。


15
它仅适用于.NET Core。
苏尼尔

9

对于已安装的框架版本,它取决于已安装的Service Pack和修补程序。请查看此MSDN页面以获取更多详细信息。它建议查看%systemroot%\Microsoft.NET\Framework以获取版本。

Environment.Version将以编程方式为您提供CLR的版本。

请注意,这是CLR的版本,不一定与您安装的框架的最新版本相同(.NET 3.0和3.5都使用CLR的v2)。


Environment.Version似乎为您提供了应用程序版本。说,从LinqPad,我想找到它正在运行的.NET版本,它给我的不是.NET版本,而是LinqPad版本
Naomi

@Naomi:不,它提供了CLR的版本。从文档中:“获取一个Version对象,该对象描述公共语言运行时的主要,次要,内部版本和修订版本号。”
adrianbanks

我应该在这个对象中看到什么?我看到2.0.50727.5472 2次要版本号0 Build 50727修订版5472主要修订版0 MinorRevision 5472在我看来并不像CLR版本运行时
Naomi

我加载了最新版本的LinqPad,现在该版本为4.0.30319.18052。以前的版本面向.NET 3.5版本。因此,我仍然有些困惑-它确实显示CLR版本吗?
内奥米

1
@Naomi:是的,它确实显示了CLR版本。2.0.50727.5472是.Net 2.0 CLR的版本,也用于.Net 3.0和3.5。4.0.30319.18052是.Net 4.0,具有不同的版本号。
adrianbanks

8

MSDN 在这里非常详细地介绍了如何从注册表中检查它:

通过查看注册表来查找.NET Framework版本(.NET Framework 1-4)

  1. 在开始菜单上,选择运行。
  2. 在“打开”框中,输入regedit.exe。您必须具有管理凭据才能运行regedit.exe。
  3. 在注册表编辑器中,打开以下子项:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework安装程序\ NDP

已安装的版本在NDP子项下列出。版本号存储在“版本”条目中。对于.NET Framework 4,“版本”条目位于“客户端”或“完整”子项下(在NDP下),或者在两个子项下。

通过查看注册表来查找.NET Framework版本(.NET Framework 4.5及更高版本)

  1. 在开始菜单上,选择运行。
  2. 在“打开”框中,输入regedit.exe。您必须具有管理凭据才能运行regedit.exe。
  3. 在注册表编辑器中,打开以下子项:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework安装程序\ NDP \ v4 \ Full

请注意,Full子项的路径包括子项Net Framework而不是.NET Framework。

检查名为的DWORD值Release。版本DWORD的存在指示该计算机上已安装.NET Framework 4.5或更高版本。

在此处输入图片说明

注意:上面快照中的最后一行已被裁剪为读取On all other OS versions: 461310。我尽了最大努力避免在截取屏幕快照时信息被剪切,但是表格太大了。


6

如果打开命令提示符并键入以下两个命令,将列出当前计算机上安装的所有框架版本(每个版本都存储在此目录中的单独目录中)。

cd %systemroot%\Microsoft.NET\Framework

dir /A:D

8
不建议使用,因为这可能会误导您。如果升级了4.0 => 4.5.2,则该目录可能仅显示v4.0.30319。请参见Sunimal Kaluarachchi的示例。
Dinah 2015年

6

只需在命令行中输入以下内容:

dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

您的dotnet版本将显示为最高编号。


1
它显示直到4.0的所有版本,例如不显示4.5。
pinowthebird

4

要仅从命令行获取已安装的版本,建议使用net-version

  • 这只是一个二进制文件
  • 它使用Microsoft提供指南 来获取版本信息。
  • 它不需要安装SDK。
  • 或Visual Studio命令提示符。
  • 它不需要您自己使用regedit并查找注册表项。如果需要,您甚至可以在命令行工具中通过管道传递输出。

源代码可在github.com找到

全面披露:我无奈创建了这个工具。


如果那组(不完整的)版本信息对您足够好,那么您将拥有更多的能力。
Dan Esparza

@Shiva您表示您认为该命令可以显示所有内容,我谨对此表示不同意。请查看带有Microsoft提供的准则的链接。例如:您的查询未显示我已安装.NET 4.6.1。另外,它表示我已经安装了“ CDF”,它不是.NET Framework版本。
Dan Esparza

4

如果您经常这样做(我倾向于这样做),则可以在桌面上创建快捷方式,如下所示:

  1. 右键单击桌面,然后选择新建快捷方式
  2. 在位置字段中,粘贴以下字符串:(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"这是来自Binoj Antony的帖子)。
  3. 点击下一步。为快捷方式命名并单击Finish

(注意:我不确定这是否适用于4.5,但是我可以确认它适用于4.6和4.5之前的版本。)


尽管%systemroot%\ Microsoft.NET \ Framework \文件夹中存在版本1.01.1,但它们没有出现在NET Framework安装密钥中。
samis

4

这是我通过引用以下内容使用的Power Shell脚本:

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

上面的脚本利用了注册表,并为我们提供了Windows更新号以及安装在计算机上的.Net Framework。

参考:https : //docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#to-find-net-framework-versions-by-在代码中查询注册网络框架45及更高版本

这是在两台不同的计算机上运行该脚本时相同的结果

  1. 已安装.NET 4.7.2的位置:

在此处输入图片说明

  1. 未安装.NET 4.7.2的位置:

在此处输入图片说明


3

天哪,找到安装的.net框架的版本太乱了?

Windows>搜索> Visual Studio安装程序>对于VS的已安装版本,点击更多>修改>单个组件,然后在其中查看:

在此处输入图片说明



1

clrver是优秀的。只需在.NET提示符下执行它,它将列出所有可用的框架版本。


3
该工具不仅需要安装.NET框架,而且还需要Visual Studio。OP指示可能未安装Visual Studio。
Dan Esparza

并且它不显示所有(或什至大多数)版本。对于我的Win7 PC,仅显示V2.0和4.0,但上述其他一些方法也显示版本:3.0、3.5、4.5、4.5.1、4.5.2、4.6.1和4.7。
Zeek2

1
@Zeek clrver显示已安装的.net运行时,可以 .net版本之间共享。请参阅如何:确定安装了哪个.NET Framework版本确定正在运行的.NET版本(
2.0、4.5、4.5.1

1

对于运行Windows 10 1607并正在寻找.net 4.7的任何人。忽略以上所有内容。

它不在注册表C:\ Windows \ Microsoft.NET文件夹中,也不在已安装程序列表或同一列表的WMIC显示中。

查找“已安装的更新” KB3186568。


1
Microsoft所述,它在注册表中。HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full-该Release值将460798在1607
理查德·迪明

它不是。“完全”键甚至不存在。
斯克里

1
是的,而且确实如此。我正在运行1607,现在正在查看Full密钥!
理查德·迪明


0

如果您正在开发某些.Net应用程序(例如以前的Web应用程序),则可以输入1行错误代码(例如调用错误的函数名)并重新加载页面,则将显示.Net版本在此处输入图片说明


可能不是最干净的方法,但确实是我完全忘记的一种选择。GACUTIL /l ?在(开发人员)powershell中使用简单的代码即可获得相同的结果。
B–rian

-1

有一种更简便的方法,可从cmd提示符下获取安装在计算机上的确切.NET版本。只需遵循以下说明;

打开命令提示符(即Windows + R→键入“ cmd”)并全部键入以下命令:%windir%\ Microsoft.NET \ FrameWork,然后导航到具有最新版本号的目录。

请参阅http://dotnettec.com/check-dot-net-framework-version/


我在尝试遵循您的答案时遇到此错误:'C:\Windows\Microsoft.NET\FrameWork' is not recognized as an internal or external command, operable program or batch file.
pavjel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.