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


301

我知道对于.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机器上看不到相同的东西。


1
好问题。使用.NET Core的任何人都知道运行时和SDK版本控制是一个非常令人困惑的主题。
肖恩

@Chiramisu,下面所有选中的项目都对我有用,但是由于一些不相关的实现细节,我使用了“所需状态配置”,并用来确保已安装dnc Windows服务器托管。(即,我在DotNetCore.1.0.0-WindowsServerHosting.exe上具有确保=缺席,在DotnetCore.2.0.5-WindowsServerHosting.exe上具有确保=当前)(或您可以找到的其他任何文件名)。DSC处理与检查有关的所有麻烦,以确保已安装/卸载了适当的软件包。
weloytty

3
dotnet --list-sdks和dotnet --list-runtimes可以在我的主机上使用,当前版本为2.1.300-preview1-008174
Jumpercake

在powershell dotnet --info 源中
manikanta kumar,

Answers:


208

使用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

1
@MarceloFilho您拥有哪个版本?您可以使用来获取它[System.Environment]::OSVersion。我使用Windows 10版本10.0.15063.0测试了上述命令。它工作正常。
托尔斯泰

6
我可以证实这工作完全的Windows服务器2016和窗户上10
user5389726598465

1
dotnet命令不是仅在安装SDK时可用吗?这与OP的要求完全相反。
Aurimas N.

@AurimasN。不,dotnet.exe命令可用于SDK和运行时部署。SDK只需添加从项目中执行“ dotnet.exe构建”和“ dotnet.exe运行”所需的必要CLI命令和必备库。
杰森·莫克

3
在Windows 10上的PowerShell中运行,但我更喜欢dotnet --info其他答案中的建议。
Manfred

344

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

编辑:

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

dotnet --info

如果您只想查看SDK,请执行以下操作: dotnet --list-sdks

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

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

另外,您可以参考.NET Core下载档案,以帮助您解密SDK版本。


旧信息: 低于此点的所有内容都是旧信息,虽然相关性较低,但可能仍然有用。

查看已安装的运行时

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

查看已安装的SDK

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

(位置的来源:开发人员的博客


此外,可以通过在命令提示符处发出以下命令来查看已安装的最新 Runtime和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/

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


15
在macOS上:ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
Sergii Volchkov

就我而言,dotnet --version表示1.1.0,但已安装的版本包括1.1.2。只是为了检查,我重命名了dotnet.exe,而dotnet --version未找到任何版本。然后,我重新安装了1.1.2,dotnet --version再次表示我拥有1.1.0。
William Jockusch '17

1
@SergiiVolchkov感谢您的评论。您能告诉我如何从Mac上卸载dotnet core1.0.0吗?
Pankaj Parkar'9

1
.NET Core 2.1.0添加了“ dotnet --list-runtimes”和“ dotnet --list-sdks”
b8adamson

1
dotnet --version列出使用中的SDK,默认情况下是最新的,但并非总是如此。如果您的文件夹结构中有一个global.json文件,它将显示在global.json中设置的任何版本,而不是最新版本。
玛丽亚策尔- MSFT

164

对于不带SDK的仅运行时环境(例如,安装了Windows Hosting软件包的服务器)的正确答案是使用以下命令运行PowerShell:

dotnet --info

根据官方文件

  • --version选项“打印出所使用的版本的.NET核心SDK的。” 因此,如果未安装SDK,则无法使用。而...
  • --info选项“打印有关的CLI工具和环境,详细信息,如当前的操作系统,提交SHA的版本等信息。”

这是另一篇官方文章,解释.NET Core版本控制的工作原理。:)


9
令人难以置信的是,这是实际答案。它被埋在一堆甚至根本不愿意正确阅读问题的人的答案下面。
Jammer '18 -4-12

--info在我的服务器--version上不起作用,而在我的服务器上起作用。该信息选项使我:Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
ArieKanarie

@ArieKanarie您可能需要使用Microsoft .NET Framework修复工具进行修复
Chiramisu

106

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

where dotnet

然后,您可以检查版本:

dotnet --version

更新:现在有一种更好的方法可以在许多其他答案中很好地说明这一点:

dotnet --info


34
它胜过dotnet CLI版本,而不是运行时。。这是两件事。安装了CLI,并不意味着安装了运行时,并且版本相同。
Aleksanderis

sshed到仅安装了运行时的服务器以进行确认,这是行不通的。请参阅此答案
gldraphael

49

确定.NET CoreWindows 是否已安装的一种虚拟方法是:

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

dotnet --version

如果.NET Core已安装,则上述步骤中不会出现任何错误。


6
请参见面对相同答案的评论:它超过dotnet CLI版本,而不是运行时。。这是两件事。安装了CLI,并不意味着就安装了运行时,如果它是相同的版本
Michael Freidgeim

Nitpcking,但是如果没有安装运行时,您将无法使用CLI。因此,如果您具有CLI,则将有一些运行时,只是它可能是完全不同的版本。
omajid

@omajid不知道您在说什么CLI。我在回答中所指的CLI是Windows 10 x64上的默认命令提示符CLI,该命令行已安装/无需特殊安装即可使用
Mohammed Zameer

这不是问题的答案。
Jammer '18 -4-12

@Jammer我建议您提供编辑建议
Mohammed Zameer

20

(1)如果您使用的是Window系统。

打开命令提示符。

 dotnet --version

(2)如果您在Linux系统上,请运行以下命令。

dotnet --version

dotnet --info

type dotnet --version- dotnet --version虽然在Windows 10上不起作用。您确定自己的答案还是type错字?这两个linux命令对我来说都适用于Win 10。
Aditya

@Aditya同意,这type是给读者的指示,而不是命令的一部分。我已修改帖子以使其匹配。
JohnLBevan '18年

是的,这是一条指令。
Hiren Parghi

15

我主要使用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 2016和Windows Server Hosting Pack(无SDK)的我的一台服务器上,结果如下。没有SDK,运行时为2.0.3。

Microsoft .NET Core Shared Framework Host

Version  : 2.0.3
Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

干杯!


10

.NET Core SDK 2.1(v2.1.300)提供了以下命令:

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

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

(在撰写本文时,于2018年6月3日在Windows上进行测试,于2018年8月23日再次进行测试)

截至2018年10月24日更新:dotnet --info如其他答案中所述,更好的选择现在可能在终端或PowerShell窗口中。


我们都可以学习。好奇地知道拒绝投票的原因。投票否当发表评论?
曼弗雷德

我没有投票,但是我推测这可能是因为您提到了“ .NET Core SDK可用的命令”,而问题却是“我想检查没有SDK的服务器”。如果确定安装运行时,上述命令中的哪些起作用,您的答案将会得到改善。
制造商

@ToolmakerSteve是的,这可能就是重点。不过,我没有一个环境,没有SDK,也不想花那么长的时间删除它...。不过,谢谢您的评论。非常感谢。
曼弗雷德

5

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

dotnet --version

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

看截图:

在此处输入图片说明


3
这将为您提供SDK版本,而不是运行时版本
Silkfire

1

或者,你可以只看里面

C:\ Program Files \ dotnet \ sdk


0

查看C:\Program Files\dotnet\shared\Microsoft.NETCore.App以查看哪些版本的运行时在那里具有目录。资源。

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


0

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

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

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


我使用了Visual Studio2017。YMMV。
巴鲁·阿塔

-6

不需要安装过程。

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

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


1
问题是关于.NET CORE而不是ide VS CODE。
user5389726598465'5
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.