我如何知道安装了哪个版本的。net ?

我正在寻找一些像java -version一样简单的东西,我可以在命令提示符中键入,并告诉我当前安装的版本。

我最好补充一点,Visual Studio可能不会被安装——这通常是我想知道的关于客户端机器的事情。


只需键入下面任何一个命令,在第一行中显示最新版本。

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。


对于所安装的框架版本,它取决于您安装的服务包和修复程序。更多细节请查看MSDN页面。建议在%systemroot%\Microsoft中查找。NET\Framework获取版本。

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

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


. net Version Detector是一个GUI实用程序,用于显示框架的六个(!)版本中哪个被安装了。


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

cd %systemroot%\Microsoft.NET\Framework

dir /A:D

在进入命令提示符之前,请遵循以下步骤…

进入“C:/Windows/Microsoft. exe”目录。→在这个文件夹中,会有(all或any)这样的文件夹:

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\框架\v4.0 30319 > csc.exe

输出:

微软(R) Visual c#编译器版本4.0.30319.17929 用于Microsoft (R) .NET Framework 4.5 微软公司版权所有。版权所有。

在下面的例子:


克利弗就是个很好的例子。只要在. net提示符中执行它,它就会列出所有可用的框架版本。


为了在命令行中获得已安装的版本,我建议使用net-version。

它只是一个单人间 二进制文件。 它使用了我提供的指导方针 微软 获取版本信息。 它不需要安装SDK。 或者Visual Studio命令提示符。 它不需要您使用regedit并查找注册表项 你自己。如果,您甚至可以在命令行工具中使用管道输出 你需要。

源代码可在github.com上获得

完全披露:我自己创建这个工具是出于挫折。


有一种更简单的方法可以通过cmd提示符在你的机器上安装。net版本。只要按照下面的指示;

打开命令提示符(即Windows + R→键入“cmd”)。 在一行中输入以下命令: reg查询“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP” (这将列出所有的。net版本。) 如果你想查看最新的。net 4版本。 在一行中输入以下指令: reg查询“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full”/v版本

请找到下面所附的图片,看看它是如何显示的。


如果你经常这样做(就像我一样),你可以在桌面上创建一个如下所示的快捷方式:

右键单击桌面,选择新建→快捷方式。 在location字段中,粘贴这个字符串: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之前的版本。)


试试Scott Hanselman的. net Checker。


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

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

您的dotnet版本将显示为最高的数字。


适用于运行Windows 10 1607并寻找。net 4.7的用户。 忽略以上所有。

不在注册表中,c:\ windows \微软NET文件夹或“已安装程序”列表或同一列表的WMIC显示。

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


微软的powershell:

Get-ChildItem "hklm:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\" | Get-ItemPropertyValue -Name Release | % { $_ -ge 394802 }

请参阅此链接的表格,以获取用于搜索特定版本的DWORD值:

https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#ps_a


MSDN详细介绍了如何从注册表中检查它:

To find .NET Framework versions by viewing the registry (.NET Framework 1-4) On the Start menu, choose Run. In the Open box, enter regedit.exe.You must have administrative credentials to run regedit.exe. 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) On the Start menu, choose Run. In the Open box, enter regedit.exe. You must have administrative credentials to run regedit.exe. 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.

注意:上面快照中被剪切的最后一行在所有其他操作系统版本上为:461310。我尽我最大的努力避免在截屏时信息被剪切,但表格太大了。


这个答案只适用于。net Core !

在您选择的终端中输入dotnet——version将打印出所使用的. net Core SDK的版本。

在这里了解更多关于dotnet命令的信息。


如果你正在开发一些。net应用(例如web应用),你可以写一行错误代码(比如调用错误的函数名),然后重新加载页面,就会显示。net版本


我的天,找到安装的。net框架的版本有这么多麻烦?

Windows >搜索> Visual Studio Installer >为已安装的VS版本,点击更多>修改>单个组件,并在那里看到它:


下面是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://learn.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed # to-find-net-framework-versions-by-querying-the-registry-in-code-net-framework-45-and-later

下面是在两台不同的机器上运行该脚本时的相同结果

已经安装了。net 4.7.2的地方:

未安装。net 4.7.2的地方:


打开CMD提示符类型:

dotnet --info

如果你在你的机器上安装了visual studio,

关于Microsoft Visual Studio,请访问帮助>

你会看到IDE正在使用的。net版本的信息。


它完全像java。打开终端,执行以下命令

dotnet --version


在CMD下执行以下命令:

dotnet——list-sdks

它将显示所有已安装的。net版本,如上图所示。你也可以运行下面的命令来查看正在使用的。net版本:

dotnet——版本