如何找到.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.0和1.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.