VS2017的MSBuild无法编译.NET Standard 2.0项目

时间:2017-08-31 10:48:38

标签: msbuild .net-standard .net-standard-2.0

我有一个针对.NET framework 4.6.1和.NET Standard 2.0的csproj。

可以使用Visual Studio 2017(v15.3.2)在本地计算机上编译

现在我正在设置我们的构建服务器(Jenkins)来包含这个项目。我们的构建服务器适用于其他.NET Framework 4.6.1项目。

首先,我将工具链从本地计算机(C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\)复制到构建服务器。

然后我将Jenkins配置为使用从C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe复制的MSBuild v15.3.409.57025

但是它会导致编译时出现以下错误

  

C:\ Program Files   (86)\的MSBuild \ SDKS \ Microsoft.NET.Sdk \建立\ Microsoft.NET.TargetFrameworkInference.targets(126,5):   错误:当前的.NET SDK不支持以.NET Standard为目标   2.0。要么是.NET Standard 1.6或更低版本,要么使用支持.NET Standard 2.0的.NET SDK版本。

文件Microsoft.NET.TargetFrameworkInference.targets也是从我的本地计算机C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrameworkInference.targets复制的。我在我的本地机器上检查了它的内容,并在下面看了一行。

<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

我的VS2017目录中ToolsVersion仍为14.0

有谁知道如何解决它?

谢谢

1 个答案:

答案 0 :(得分:6)

您还需要安装.NET Core 2.0.0 SDK,因为VS安装仅包含1.1.0任务和目标,并查找与当前msbuild版本兼容的其他已安装版本(或者有项目中的global.json文件引用了不同的版本。)