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

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

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


当前回答

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

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

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

其他回答

在CMD下执行以下命令:

dotnet——list-sdks

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

dotnet——版本

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

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

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

下面是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的地方:

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

dotnet --version

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

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

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