.net core 什么控制Visual Studio.net核心版本?
我一辈子都不明白为什么我所有的项目都安装了NETStandard.Library 1.6.1 如果从命令行运行.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>
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的出现会导致这种情况,但很高兴能修复它!