.net core 什么控制Visual Studio.net核心版本?

.net core 什么控制Visual Studio.net核心版本?,.net-core,visual-studio-2017,.net-standard,.net Core,Visual Studio 2017,.net Standard,我一辈子都不明白为什么我所有的项目都安装了NETStandard.Library 1.6.1 如果从命令行运行dotnet--version,我会得到以下输出 2.1.0-preview1-007102 我的.csproj文件如下所示: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework>

我一辈子都不明白为什么我所有的项目都安装了NETStandard.Library 1.6.1

如果从命令行运行
dotnet--version
,我会得到以下输出

2.1.0-preview1-007102
我的.csproj文件如下所示:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
  </ItemGroup>
</Project>

netstandard2.0
Visual studio阻止我在Visual studio中通过nuget升级,因此我总是必须手动安装
NETStandard.Library 2.0.0
,或者搜索堆栈溢出并将该隐式版本标记添加到.csproj中,但为什么我必须这样做?是什么告诉VisualStudio默认值应该是1.6

阻止我在下面安装NETStandard.Library 2.0.0是什么意思


此NuGet软件包不应手动编辑,但在您的情况下,它似乎使用了不应与
netstandard2.0
一起使用的旧版本的工具

检查项目目录层次结构中是否有最新的VS版本(当前为15.4.0),并且没有将SDK版本设置为低于
2.0.0
global.json

此外,我建议不要在生产工作中使用每日构建(例如,您的2.1.0预览版),因为您需要不断更新它以确保安全,或者在项目目录中创建一个
global.json
文档,其中包含:

{
  "sdk": {
    "version": "2.0.2"
  }
}

确保您使用的是“良好”版本(2.0.2是VS 2017 15.4.0附带的版本)。完成此操作后,您需要再次关闭并重新打开解决方案。

我有最新的VS,甚至下载了enterprise试用版以试用新的。同样的事情。奇怪的是cli
dotnet构建
完全按照预期工作。我的构建服务器也可以毫无问题地构建这些。我不知道Visual Studio是否正在使用不同的
dotnet
可执行文件,或者正在发生什么。VS带有一个“SDK解析器”,它从.NET核心SDK版本中查找
Microsoft.NET.SDK
文件夹。它寻找一个global.json来控制它,但应该解析为1.1.0或2.*版本。您可以使用
dotnet--info
检查2.1.0预览的位置,并尝试将其删除。(
其中dotnet
也是一个很好的指示)谢谢,我删除了2.0预览SDK,以及我安装的1.0预览SDK,一切都按照我的预期开始工作。我不知道为什么预览SDK的出现会导致这种情况,但很高兴能修复它!