新人更新 - 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 的新版本。我截取了下面的屏幕截图。