即使我安装了.Net Core 1.1,dotnet cli也会显示1.0

时间:2016-12-04 17:02:10

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

我已经从https://www.microsoft.com/net/download/core下载并安装了最新的.Net Core,但在安装后我打开了一个cmd提示符,> dotnet --version仍显示1.0.0-preview2-003131

有人可以解释我在这里缺少的东西吗?

1 个答案:

答案 0 :(得分:2)

新来者的更新 - 2018-08-01

最初的答案高度针对OP在当时(2016年)具有背景的理解。 Core在过去几年里已经走过了漫长的道路,所以如果你现在就来这里,你可能甚至不知道global.json和SDK的固定是什么,因为在创建一个新项目时它不再是默认模板的一部分。

基本上,CLI默认使用安装最高版本的.Net Core。但是,如果您选择,您可以通过创建global.json并设置特定的SDK版本来指定嵌套文件夹中所有应用程序使用的特定版本的.Net Core。如果这样做,安装错误版本时会出错。

Core团队非常了解不会导致任何重大更改,并且如上所述,默认情况下已选择删除固定。这实际上最近造成了一些issues for some people,因为他们没有固定到他们构建应用程序的版本。我个人更喜欢固定我正在构建的版本并明确更新它。

为了增加额外的混淆,SDK版本不与.Net Core版本的版本号对齐,所以你必须“只知道”用于什么版本。

对于现在回答这个问题的人来说,OP在这里遇到的问题是他没有意识到global.json固定了他的版本,也没有说明为什么版本与.Net Core版本如此不同。

原始答案:

命令行是特定于上下文的。我猜你是在一个项目中运行的,该项目在引用旧版本的父文件夹中有一个global.json。

Old Global.json

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-003131"
  }
}

将global.json更改为:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-1-003177"
  }
}

此更改将使dotnet cli尊重项目中的新版本,以便您可以选择何时升级项目。这就是如何在您的机器上拥有多个版本的dotnet,而不必一次更新每个项目。

[编辑 - SDK版本混淆]

请注意,您安装的SDK版本确实是SDK的1.1版本。安装程序会指示适用于1.1的SDK的新版本。我已经在下面截图了。

Core 1.1 Installer banner