如何确定是否已安装.NET Core

时间:2016-07-25 12:07:15

标签: c# asp.net-core .net-core

我知道对于旧版本的.NET,您可以通过以下

确定是否安装了给定版本
https://support.microsoft.com/en-us/kb/318785  

是否有官方方法确定是否安装了.NET Core

(我不是指SDK,我想检查没有SDK的服务器,以确定它是否安装了DotNetCore.1.0.0-WindowsHosting.exe)

我可以看到

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NET Cross-Platform Runtime Environment\.NET Framework 4.6\Win\v1-rc1 
在我的Windows 7计算机上使用版本号1.0.11123.0

,但我在Windows 10计算机上看不到相同的内容。

18 个答案:

答案 0 :(得分:247)

很好的问题,答案并不简单。没有“显示所有.net核心版本”命令,但有希望。

修改

我不确定它何时添加,但info命令现在在其输出中包含此信息。它将打印出已安装的运行时和SDK,以及其他一些信息:

dotnet --info

如果您只想查看SDK:dotnet --list-sdks

如果您只想查看已安装的运行时:dotnet --list-runtimes

我在Windows上,但我猜这可以在Mac或Linux上使用当前版本。

此外,您可以参考.NET Core Download Archive来帮助您破译SDK版本。

老人信息: 低于这一点的所有内容都是旧信息,这些信息不太相关,但可能仍然有用。

请参阅已安装运行时

在Windows资源管理器中打开C:\Program Files\dotnet\shared\Microsoft.NETCore.App

请参阅已安装的 SDK

在Windows资源管理器中打开C:\Program Files\dotnet\sdk

(地点来源:A developer's blog

此外,您可以通过在命令提示符处发出以下命令来查看最新运行时和SDK版本:

dotnet 最新的运行时版本是列出的第一件事。 免责声明:这不再有效,但可能适用于旧版本。

dotnet --version 最新SDK版本 免责声明:显然,任何global.json配置文件都可能会影响其结果。

在macOS上,您可以使用以下命令检查.net核心版本。

ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/

在Ubuntu或Alpine上:

ls /usr/share/dotnet/shared/Microsoft.NETCore.App/

它将列出已安装版本名称的文件夹。

答案 1 :(得分:122)

没有SDK的仅运行时环境(例如安装了Windows主机软件包的服务器)的正确答案是使用以下命令运行PowerShell:

dotnet --info

根据official documentation

  • --version选项“打印出正在使用的.NET Core SDK版本。”因此,如果未安装SDK,则无效。而...
  • --info选项“打印有关CLI工具和环境的详细信息,例如当前操作系统,为版本提交SHA以及其他信息。”

这是另一篇解释.NET Core versioning如何运作的官方文章。 :)

答案 2 :(得分:120)

使用Powershell

运行时:

(dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'shared\Microsoft.NETCore.App')).Name

SDK的:

(dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'sdk')).Name

答案 3 :(得分:73)

您可以检查dotnet.exe是否可用:

where dotnet

然后您可以查看版本:

dotnet --version

更新:现在有更好的方法可以做到这一点,在许多其他答案中都有很好的解释:

dotnet --info

答案 4 :(得分:46)

确定Windows上是否安装.NET Core的方法之一是:

  • Windows + R
  • 输入cmd
  • 在命令提示符下,键入dotnet --version

dotnet --version

如果安装了.NET Core,我们不应在上述步骤中出现任何错误。

答案 5 :(得分:17)

(1)如果你在Window系统上。

打开命令提示符。

 dotnet --version

(2)运行以下命令如果您使用的是Linux系统。

dotnet --version

dotnet --info

答案 6 :(得分:13)

我主要使用Windows开发机器和服务器。

我只想指出(至少对于.NET.Core 2.0及更高版本),唯一需要的是在命令提示符下执行dotnet --info以获取有关最新版本的信息安装。如果安装了.NET Core,您将得到一些响应。

在我的开发机器(Windows 10)上,结果如下。 SDK是2.1.2,运行时是2.0.3。

.NET Command Line Tools (2.1.2)

Product Information:
 Version:            2.1.2
 Commit SHA-1 hash:  5695315371

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.15063
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.2\

Microsoft .NET Core Shared Framework Host

  Version  : 2.0.3
  Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

在我的一台运行带有Windows Server Hosting pack(无SDK)的Windows Server 2016的服务器上,结果如下。没有SDK,运行时是2.0.3。

Microsoft .NET Core Shared Framework Host

Version  : 2.0.3
Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

干杯!

答案 7 :(得分:8)

以下命令适用于.NET Core SDK 2.1 (v2.1.300)

要列出所有已安装的.NET Core SDK,请使用:dotnet --list-sdks

要列出所有已安装的.NET Core运行时,请使用dotnet --list-runtimes

(在写作时在Windows上测试,2018年6月3日,以及2018年8月23日再次发布)

自2018年10月24日起更新:在其他答案中已经提到的终端或PowerShell窗口中,更好的选项现在可能是dotnet --info

答案 8 :(得分:5)

在Windows上,您只需打开命令提示符并键入:

dotnet --version

如果安装了.net核心框架,您将获得当前安装的版本

见截图:

enter image description here

答案 9 :(得分:1)

或者,您可以只看内部

C:\ Program Files \ dotnet \ sdk

答案 10 :(得分:1)

运行此命令

dotnet --list-sdks

enter image description here

答案 11 :(得分:1)

dotnet --info

dotnet --version

在您的CMD终端上写下上述命令。然后它会显示如下内容 enter image description here

enter image description here

答案 12 :(得分:0)

查看C:\Program Files\dotnet\shared\Microsoft.NETCore.App,以查看哪些版本的运行时在其中具有目录。 Source.

此处的许多答案将SDK与运行时混淆,这是不同的。

答案 13 :(得分:0)

在所有其他答案之后,这可能很有用。

在Visual Studio中打开您的应用程序。在解决方案资源管理器中,右键单击您的项目。单击属性。单击应用程序。在“目标框架”下,单击下拉按钮,您将看到所有已安装的框架。

顺便说一句-您现在可以选择所需的框架。

答案 14 :(得分:0)

可能已安装.NET Core但未将其添加到PATH中 操作系统或用户配置文件的变量。运行 dotnet命令可能不起作用。作为备选, 您可以检查.NET Core安装文件夹是否存在。

如果您在灌输过程中未进行更改,则会将其安装到标准文件夹中

  • dotnet可执行文件C:\program files\dotnet\dotnet.exe

  • .NET SDK C:\program files\dotnet\sdk\{version}\

  • .NET运行时C:\program files\dotnet\shared\{runtime-type}\{version}\

有关更多详细信息,请查阅.NET文档中的How to check that .NET Core is already installed

答案 15 :(得分:0)

您可以查看终端当前安装了哪些版本的.NET Core SDK。打开终端并运行以下命令。

dotnet --list-sdks

答案 16 :(得分:0)

此方法仅适用于 Windows,可能有点矫枉过正。

function Get-InstalledApps {
  [CmdletBinding(SupportsShouldProcess=$false)]
  Param ([Parameter(Mandatory=$false, ValueFromPipeline=$true)] [string]$ComputerName=$env:COMPUTERNAME,
         [Parameter(Mandatory=$false, ValueFromPipeline=$false)] [System.Management.Automation.PSCredential]$Credential)

  Begin { Write-Verbose "Entering $($PSCmdlet.MyInvocation.MyCommand.Name)" }

  Process {
    $HKEY_LOCAL_MACHINE=2147483650
    $Results=@()

    if ($Credential -eq $null) { $Reg=[Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine,$ComputerName) }
    else { $Reg=Get-WmiObject -Namespace "root\default" -List "StdRegProv" -ComputerName $ComputerName -Credential $Credential }

    $RegPath=@("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall")
    if ([IntPtr]::Size -ne 4) {
      $RegPath+="SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
    }

    for ($i=0; $i -lt $RegPath.Count; $i++) {
      if ($Credential -eq $null) {
        $RegKey=$Reg.OpenSubKey($RegPath[$i])
        $InstallKeys=$RegKey.GetSubKeyNames()
        $RegKey.Close()
      }
      else { $InstallKeys=$Reg.EnumKey($HKEY_LOCAL_MACHINE,$RegPath[$i]) | Select-Object -ExpandProperty sNames }
      $InstallKeys=@($InstallKeys)

      for ($j=0; $j -lt $InstallKeys.Count; $j++) {
        if ($Credential -eq $null) {
          $AppKey=$Reg.OpenSubKey(($RegPath[$i]+"\\"+$InstallKeys[$j]))
          $Result=New-Object -Type PSObject -Property @{ComputerName=$ComputerName;
                                                        DisplayName=$AppKey.GetValue("DisplayName");
                                                        Publisher=$AppKey.GetValue("Publisher");
                                                        InstallDate=$AppKey.GetValue("InstallDate");
                                                        DisplayVersion=$AppKey.GetValue("DisplayVersion");
                                                        UninstallString=$AppKey.GetValue("UninstallString")}
          $AppKey.Close()
        }
        else {
          $Result=New-Object -Type PSObject -Property @{ComputerName=$ComputerName;
                                                        DisplayName=$Reg.GetStringValue($HKEY_LOCAL_MACHINE,($RegPath[$i]+"\"+$InstallKeys[$j]),"DisplayName").sValue;
                                                        Publisher=$Reg.GetStringValue($HKEY_LOCAL_MACHINE,($RegPath[$i]+"\"+$InstallKeys[$j]),"Publisher").sValue;
                                                        InstallDate=$Reg.GetStringValue($HKEY_LOCAL_MACHINE,($RegPath[$i]+"\"+$InstallKeys[$j]),"InstallDate").sValue;
                                                        DisplayVersion=$Reg.GetStringValue($HKEY_LOCAL_MACHINE,($RegPath[$i]+"\"+$InstallKeys[$j]),"DisplayVersion").sValue;
                                                        UninstallString=$Reg.GetStringValue($HKEY_LOCAL_MACHINE,($RegPath[$i]+"\"+$InstallKeys[$j]),"UninstallString").sValue;}
        }
        if ($Result.DisplayName -ne $null) { $Results+=$Result }
      }
    }
    if ($Credential -eq $null ) { $Reg.Close() }
    $Results
  }

  End { Write-Verbose "Exiting $($PSCmdlet.MyInvocation.MyCommand.Name)" }
}

$NetSDK=Get-InstalledApps | Where-Object { $_.DisplayName -like "*.NET Core SDK*" } | Sort-Object -Property DisplayVersion -Descending | Select-Object -First 1
$NetHost=Get-InstalledApps | Where-Object { $_.DisplayName -like "*ASP.NET Core*" } | Sort-Object -Property DisplayVersion -Descending | Select-Object -First 1
$NetSDK
$NetHost

答案 17 :(得分:-6)

它不需要安装过程。

我已经在我的任务栏(win10)上固定了“VSCore”,所以打开它,然后打开一个任务管理器,选择“Visual Studio Core”进程展开左箭头,然后在其上任意一个子进程右键,点击“打开文件位置“菜单。

如果您不记得安装位置,请在所有硬盘中搜索“Code.exe”文件。