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

MSBuild of VS2017 cannot compile .NET Standard 2.0 project

我有一个针对 .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 Studio17\Enterprise\MSBuild\) 复制到构建服务器。

然后我将 Jenkins 配置为使用从 C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild.0\Bin\MSBuild.exe

复制的 MSBuild v15.3.409.57025

但是编译时出现如下错误

C:\Program Files (x86)\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrameworkInference.targets(126,5): error : The current .NET SDK does not support targeting .NET Standard 2.0. Either target .NET Standard 1.6 or lower, or use a version of the .NET SDK that supports .NET Standard 2.0.

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

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

ToolsVersion还在我的VS2017目录中14.0

有人知道怎么解决吗?

谢谢

您还需要安装 .NET Core 2.0.0 SDK,因为 VS 安装仅包括 1.1.0 任务和目标,并寻找与当前 msbuild 版本兼容的其他已安装版本(或那里是项目中固定不同版本的 global.json 文件。