什么是控件Visual Studio .net核心版本?

问题描述:

我无法弄清楚为什么我所有的项目都安装了NETStandard.Library 1.6.1。什么是控件Visual Studio .net核心版本?

如果我在命令行中我得到以下输出运行dotnet --version

2.1.0-preview1-007102 

我的.csproj文件看起来像这样:

​​

的Visual Studio块我在Visual Studio中通过的NuGet升级,所以我总是不得不手动安装NETStandard.Library 2.0.0或搜索堆栈溢出,并将该隐式版本标记添加到.csproj中,但是为什么我必须这样做?什么是告诉视觉工作室,默认值应该是1.6?

我的意思是由安装NETStandard.Library 2.0.0以下

enter image description here

阻止我什么是不应该这样NuGet包进行手动编辑,但在你的情况下,它看上去像一个旧版本的使用的工具不应该与netstandard2.0一起使用。

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

另外,我建议不要使用每日构建(例如,您的2.1.0预览)用于生产工作,因为你需要不断更新它是在安全方面,还是在包含项目目录中创建一个文件global.json

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

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

+0

我有最新的VS,甚至下载企业试用版,只是尝试一个新的。一样。奇怪的是,cli''dotnet build''完全按照预期工作。另外我的构建服务器构建这些没有问题。我不知道Visual Studio是否使用不同的''dotnet''可执行文件或正在发生的事情。 –

+0

VS携带一个“SDK解析器”,它可以从.net核心sdk版本找到'Microsoft.NET.Sdk'文件夹。它寻找一个global.json来控制它,但应该解析为1.1.0或2. *版本。你可以用'dotnet --info'来检查2.1.0预览,并尝试删除它。 ('dotnet'也是一个很好的指示) –

+0

谢谢,我删除了2.0预览SDK,以及我已经安装的1.0预览SDK,并且所有事情都开始按我期望的那样工作。我不确定为什么预览SDK的存在会导致这种情况,但噢,很高兴将它修复! –