我有一个针对.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
?
有谁知道如何解决它?
谢谢
答案 0 :(得分:6)
您还需要安装.NET Core 2.0.0 SDK,因为VS安装仅包含1.1.0
任务和目标,并查找与当前msbuild版本兼容的其他已安装版本(或者有项目中的global.json文件引用了不同的版本。)