如何找出安装的 .NET 版本?
我正在寻找像 java -version
这样简单的东西,我可以在命令提示符下键入它并告诉我当前安装的版本。
我最好补充一点,可能没有安装 Visual Studio - 这通常是我想了解的有关客户端计算机的信息。
有一种更简单的方法可以从 cmd 提示符获取安装在计算机上的确切版本 .NET 版本。只需按照以下说明进行操作;
打开命令提示符(即 Windows + R → 键入“cmd”)。键入以下命令,全部在一行上:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"
(这将列出所有 .NET 版本。)
如果您想查看最新的 .NET 4 版本。在一行中键入以下指令:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version
请在下面找到所附图片以查看其显示方式。
https://i.stack.imgur.com/QIsB6.png
只需键入以下任何一个命令,即可在第一行为您提供最新版本。
1. CSC
2. GACUTIL /l ?
3. CLRVER
如果您安装了 Visual Studio,则只能从 Visual Studio 命令提示符运行这些命令,或者如果您有 .NET 框架 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 的版本。
此答案仅适用于 .NET Core!
在您选择的终端中键入 dotnet --version
将打印出正在使用的 .NET Core SDK 版本。
了解有关 dotnet
命令 here 的更多信息。
dotnet --version
将安装最高版本的 SDK。 dotnet --list-sdks
将安装所有 SDK。 dotnet --list-runtimes
将安装所有运行时。
在进入命令提示符之前,请按照以下步骤操作...
转到“C:/Windows/Microsoft.NET/Framework”→在此文件夹中,将有文件夹(全部或任何):
v1.0.3705
v2.0.50727
v3.5
v4.0.30319
您最新的 .NET 版本将位于 v 编号最高的文件夹中,因此如果“v4.0.30319”可用,它将包含您最新的 .NET 框架。但是,“v4.0.30319”并不意味着您拥有 .NET 框架 4.0 版。 “v4.0.30319”是您的 Visual C# 编译器版本,因此,为了找到 .NET 框架版本,请执行以下操作。
转到命令提示符并遵循以下路径:
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。版权所有。
下面的例子:
https://i.stack.imgur.com/AqFcA.jpg
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
,然后输入 csc.exe
,希望对某人有所帮助。
对于安装的框架版本,它会根据您安装的服务包和修补程序而有所不同。查看 this MSDN page 了解更多详情。它建议查看 %systemroot%\Microsoft.NET\Framework
以获取版本。
Environment.Version 将以编程方式为您提供 CLR 的版本。
请注意,这是 CLR 的版本,不一定与您安装的框架的最新版本相同(.NET 3.0 和 3.5 都使用 v2 的 CLR)。
MSDN 非常详细地here详细介绍了如何从注册表中检查它:
通过查看注册表查找 .NET Framework 版本 (.NET Framework 1-4) 在“开始”菜单上,选择“运行”。在“打开”框中,输入 regedit.exe。您必须具有管理凭据才能运行 regedit.exe。在注册表编辑器中,打开以下子项: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP 已安装的版本列在 NDP 子项下。版本号存储在版本条目中。对于 .NET Framework 4,版本条目位于 Client 或 Full 子项下(在 NDP 下),或在两个子项下。通过查看注册表查找 .NET Framework 版本(.NET Framework 4.5 及更高版本) 在“开始”菜单上,选择“运行”。在“打开”框中,输入 regedit.exe。您必须具有管理凭据才能运行 regedit.exe。在注册表编辑器中,打开以下子项: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full 请注意,完整子项的路径包括子项 Net Framework 而不是 .NET Framework 检查名为 Release 的 DWORD 值. Release DWORD 的存在表明该计算机上已安装 .NET Framework 4.5 或更高版本。
注意:上述快照中被剪辑的最后一行是 On all other OS versions: 461310
。我尽力避免在截屏时信息被截断,但表格太大了。
只需在命令行中键入以下内容:
dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*
您的 dotnet 版本将显示为最高数字。
如果您打开命令提示符并键入以下两个命令,则将列出当前机器上安装的所有框架版本(每个版本都存储在此目录中的单独目录中)。
cd %systemroot%\Microsoft.NET\Framework
dir /A:D
如果你经常这样做(我倾向于这样做),你可以在桌面上创建一个快捷方式,如下所示:
右键单击桌面并选择新建 → 快捷方式。在位置字段中,粘贴以下字符串: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 之前的版本。)
天哪,找到已安装的 .net 框架的版本这么乱?
Windows > 搜索 > Visual Studio Installer > 对于已安装的 VS 版本,点击更多 > 修改 > 单个组件并在那里查看:
https://i.stack.imgur.com/yX9WN.png
要在命令行中获取已安装的版本,我建议使用 net-version。
它只是一个二进制文件。
它使用我的 Microsoft 提供的指南来获取版本信息。
它不需要安装 SDK。
或 Visual Studio 命令提示符。
它不需要您自己使用 regedit 和查找注册表项。如果需要,您甚至可以在命令行工具中通过管道输出。
源代码在 github.com 上可用
完全披露:出于沮丧,我自己创建了这个工具。
打开 cmd 提示符类型:
dotnet --info
这是我通过参考使用的 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。
以下是在两台不同机器上运行该脚本时相同的结果
已安装 .NET 4.7.2 的位置:
https://i.stack.imgur.com/WlxOE.png
未安装 .NET 4.7.2 的地方:
https://i.stack.imgur.com/NB7vq.png
clrver
是一个优秀的。只需在 .NET 提示符下执行它,它就会列出所有可用的框架版本。
clrver
显示已安装的 .net 运行时,可以在 .net 版本之间共享 /b>。请参阅 How to: Determine Which .NET Framework Versions Are Installed 和 Identifying the .NET version you are running (2.0, 4.5, 4.5.1 or 4.5.2)
https://i.stack.imgur.com/QPQIc.png
GACUTIL /l ?
产生的效果相同。
适用于运行 Windows 10 1607 并正在寻找 .net 4.7 的任何人。无视以上所有。
它不在注册表、C:\Windows\Microsoft.NET 文件夹或已安装程序列表或同一列表的 WMIC 显示中。
查找“已安装的更新”KB3186568。
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
- 对于 W10 1607 上的 4.7,Release
值将是 460798
。
Full
键!
每个 Microsoft 在 powershell 中:
Get-ChildItem "hklm:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\" | Get-ItemPropertyValue -Name Release | % { $_ -ge 394802 }
请参阅此链接中的表格以获取 DWORD 值以搜索特定版本:
如果你的机器上安装了 Visual Studio,
只需转到帮助 > 关于 Microsoft Visual Studio
您将看到有关 IDE 正在使用的 .NET 版本的信息。
https://i.stack.imgur.com/UzxS8.png
不定期副业成功案例分享