【问题标题】:The dotnet cli shows 1.0 even though I have installed .Net Core 1.1即使我安装了 .Net Core 1.1,dotnet cli 仍显示 1.0
【发布时间】:2016-12-04 17:02:09
【问题描述】:

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

有人可以解释一下我在这里缺少什么吗?

【问题讨论】:

  • 您是否检查过 x64 与 x86 程序文件夹(在 Windows 上)。我记得前段时间在社区站会中提到的安装程序中有一个错误。
  • 我只在 C:\Program Files\dotnet 中找到了 dotnet.exe,没有其他地方,它是 1.0.0-preview2-1-003177 :(

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


【解决方案1】:

新人更新 - 2018-08-01

最初的答案高度针对当时(2016 年)OP 对上下文的理解。 Core 在过去几年里已经取得了长足的进步,所以如果你现在开始这样做,你可能甚至不知道 global.json 和 SDK pinning 是什么,因为在创建新项目时它不再是默认模板的一部分。

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

Core 团队非常擅长不引起任何破坏性更改,并且如上所述已选择默认移除固定。这实际上最近引起了一些issues for some people,因为他们没有固定到他们构建应用程序所针对的版本。我个人更喜欢固定到我正在构建的版本并明确更新它。

为了增加额外的混淆,SDK 版本与 .Net Core 版本的版本号不一致,因此您真的必须“只知道”哪个版本用于什么。

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


原答案:

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

旧的 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版本确实是1.1版本的SDK。安装程序指示 SDK for 1.1 的新版本。我截取了下面的屏幕截图。

【讨论】:

  • 我将 global.json 更新为 "sdk": { "version": "1.1.0-" } 但在构建项目时仍然出现以下错误。错误 项目配置为使用 .NET Core SDK 版本 1.1.0- 未安装或在路径 C:\Program Files\dotnet 下找不到。
  • @fanray 只需将其注释掉并运行“dotnet --version”。那会告诉你用什么来代替它。它可能类似于“1.0.0-preview2-1-003177”。 dotnet core 是 1.1,但我发现工具并不代表相同的版本,即使它是 1.1 的正确版本
  • @fanray 我已经更新了我的答案,以更具体地针对您的情况,并通过屏幕截图显示提供的 SDK 版本是 1.1 版本。
  • 谢谢@Runesun 我将 global.json 更新为“1.0.0-preview2-1-003177”并且它起作用了,尽管如果我安装了 1.1 为什么 dotnet cli 说它是 1.0 以及为什么global.json 有 1.0,我的 project.json 中的所有内容都使用 1.1,然后一切都会突然运行。
  • 这太令人困惑了。我遇到了同样的问题。我刚刚安装了它,我得到了与上面相同的图像。很明显,上图显示的是 Core 1.1.0。然而“dotnet --version”说“1.0.0-preview4-004233”。它并没有真正显示 Core 的版本。它显示 SDK 的版本。为什么它们不一样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
  • 2017-10-07
  • 2017-10-16
  • 2017-06-01
相关资源
最近更新 更多