如何找出安装了哪个版本的.NET?
我正在寻找可以在命令提示符下键入的“ java -version”之类的简单信息,它告诉我当前安装的版本。
我最好补充一点,就是可能未安装Visual Studio,这是我通常想了解的有关客户端计算机的内容。
如何找出安装了哪个版本的.NET?
我正在寻找可以在命令提示符下键入的“ java -version”之类的简单信息,它告诉我当前安装的版本。
我最好补充一点,就是可能未安装Visual Studio,这是我通常想了解的有关客户端计算机的内容。
Answers:
只需键入以下任何命令,即可在第一行中为您提供最新版本。
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。
csc
输出C#编译器的版本,而不是.NET Framework的版本。
有一种更简便的方法,可从cmd提示符下获取安装在计算机上的确切.NET版本。只需遵循以下说明;
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"
(这将列出所有.NET版本。)
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version
请在下面找到所附图片以查看其显示方式。
.NET版本检测器是一个GUI实用程序,它显示框架的六个(!)版本中的哪个版本。
在转到命令提示符之前,请按照以下步骤操作...
打开我的电脑 →双击“ 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。版权所有。
下面的例子:
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
然后键入csc.exe
,希望对您有所帮助。
对于已安装的框架版本,它取决于已安装的Service Pack和修补程序。请查看此MSDN页面以获取更多详细信息。它建议查看%systemroot%\Microsoft.NET\Framework
以获取版本。
Environment.Version将以编程方式为您提供CLR的版本。
请注意,这是CLR的版本,不一定与您安装的框架的最新版本相同(.NET 3.0和3.5都使用CLR的v2)。
MSDN 在这里非常详细地介绍了如何从注册表中检查它:
通过查看注册表来查找.NET Framework版本(.NET Framework 1-4)
- 在开始菜单上,选择运行。
- 在“打开”框中,输入regedit.exe。您必须具有管理凭据才能运行regedit.exe。
在注册表编辑器中,打开以下子项:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework安装程序\ NDP
已安装的版本在NDP子项下列出。版本号存储在“版本”条目中。对于.NET Framework 4,“版本”条目位于“客户端”或“完整”子项下(在NDP下),或者在两个子项下。
通过查看注册表来查找.NET Framework版本(.NET Framework 4.5及更高版本)
- 在开始菜单上,选择运行。
- 在“打开”框中,输入regedit.exe。您必须具有管理凭据才能运行regedit.exe。
在注册表编辑器中,打开以下子项:
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
。我尽了最大努力避免在截取屏幕快照时信息被剪切,但是表格太大了。
如果打开命令提示符并键入以下两个命令,将列出当前计算机上安装的所有框架版本(每个版本都存储在此目录中的单独目录中)。
cd %systemroot%\Microsoft.NET\Framework
dir /A:D
只需在命令行中输入以下内容:
dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*
您的dotnet版本将显示为最高编号。
要仅从命令行获取已安装的版本,建议使用net-version。
源代码可在github.com上找到
全面披露:我无奈创建了这个工具。
如果您经常这样做(我倾向于这样做),则可以在桌面上创建快捷方式,如下所示:
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的帖子)。(注意:我不确定这是否适用于4.5,但是我可以确认它适用于4.6和4.5之前的版本。)
这是我通过引用以下内容使用的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及更高版本
这是在两台不同的计算机上运行该脚本时相同的结果
clrver
是优秀的。只需在.NET提示符下执行它,它将列出所有可用的框架版本。
在Powershell中每个Microsoft:
Get-ChildItem "hklm:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\" | Get-ItemPropertyValue -Name Release | % { $_ -ge 394802 }
请参阅此链接上的表以获取DWORD值以搜索特定版本:
有一种更简便的方法,可从cmd提示符下获取安装在计算机上的确切.NET版本。只需遵循以下说明;
打开命令提示符(即Windows + R→键入“ cmd”)并全部键入以下命令:%windir%\ Microsoft.NET \ FrameWork,然后导航到具有最新版本号的目录。
'C:\Windows\Microsoft.NET\FrameWork' is not recognized as an internal or external command, operable program or batch file.