Jenkins无法构建C#项目

Sta*_*lfi 4 c# msbuild visual-studio jenkins

我正在尝试从jenkins构建一个包含2个项目的Vistual Studio 2017解决方案:ASP.NET和测试项目.

如果您需要更多详细信息,请告诉我.

配置:

在此输入图像描述

在此输入图像描述

控制台输出中的错误:

C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets(316,9):错误MSB4062:无法从程序集C:\n加载"Microsoft.CodeAnalysis.BuildTasks.Csc"任务程序文件(x86)\ Jenkins\workspace \new 3\packages\Microsoft.Net.Compilers.2.1.0\build ..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll.无法加载文件或程序集"Microsoft.Build.Utilities.Core,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"或其依赖项之一.该系统找不到指定的文件.确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类.[C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2.csproj]

C:\ Program Files(x86)\ Jenkins\workspace \new 3\packages\Microsoft.Net.Compilers.2.1.0\build\Microsoft.Net.Compilers.props(13,5):错误:Microsoft.Net.Compilers仅在MSBuild v14.0及更高版本[C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2.csproj]上受支持

完整控制台输出:

用户启动stav alfi在工作区C:\ Program Files(x86)\ Jenkins\workspace \new 3中构建

从远程Git仓库git.exe配置remote.origin.url git.exe REV-解析--is-内部功树#超时= 10名读取更改https://github.com/stavalfi/c_sharp_example_project.git#超时= 10从https://github.com/stavalfi/c_sharp_example_project.git获取上游更改 git.exe --version #timeout = 10 git.exe fetch --tags --progress https://github.com/stavalfi/c_sharp_example_project .git + refs/heads/:refs/remotes/origin / git.exe rev-parse"refs/remotes/origin/master ^ {commit}"#timeout = 10 git.exe rev-parse"refs/remotes/origin/origin/master ^ {commit}"#timetime = 10签出修订版a70858995d5557ae1483965072e2a66833f9979d(refs/remotes/origin/master)git.exe config core.sparsecheckout #timetime = 10 git.exe checkout -f a70858995d5557ae1483965072e2a66833f9979d提交消息:"添加项目文件".git.exe rev-list a70858995d5557ae1483965072e2a66833f9979d #timeout = 10 [new 3] $ cmd/c call C:\ WINDOWS\TEMP\jenkins5187263831491564261.bat

C:\ Program Files(x86)\ Jenkins\workspace \new 3> nuget restore MSBuild自动检测:使用来自'C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Enterprise \的msbuild版本'15 .3.409.57025'的MSBuild\15.0\BIN'.package.config中列出的所有软件包都已安装.

C:\ Program Files(x86)\ Jenkins\workspace \new 3> exit 0 MSBuild.exe路径:C:\ Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe执行命令cmd.exe/C "chcp 1252 && C:\ Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe /p:VisualStudioVersion=12.0 WebApplication2.sln"&&从C:\ Program Files(x86)\ Jenkins退出%% ERRORLEVEL %%\workspace \new 3 [new 3] $ cmd.exe/C"chcp 1252 && C:\ Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe /p:VisualStudioVersion=12.0 WebApplication2.sln"&& exit% %ERRORLEVEL %%活动代码页:1252 Microsoft(R)Build Engine版本4.7.2053.0 [Microsoft .NET Framework,版本4.0.30319.42000]版权所有(C)Microsoft Corporation.版权所有.

一次一个地在此解决方案中构建项目.要启用并行构建,请添加"/ m"开关.Build build 04/10/2017 19:16:39 节点1上的项目"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2.sln"(默认目标).ValidateSolutionConfiguration:构建解决方案配置"Debug | Any CPU".项目"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2.sln"(1)正在构建"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2.csproj" (2)在节点1上(默认目标).项目文件包含ToolsVersion ="15.0".此工具集可能未知或缺失,在这种情况下,您可以通过安装相应版本的MSBuild来解决此问题,或者出于策略原因,可能已将构建强制转换为特定的ToolsVersion.像处理ToolsVersion ="4.0"那样处理项目.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId = 291333.GenerateTargetFrameworkMonikerAttribute:跳过目标"GenerateTargetFrameworkMonikerAttribute",因为所有输出文件都是相对于输入文件的最新文件.C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets(316,9):错误MSB4062:无法从程序集C:\n加载"Microsoft.CodeAnalysis.BuildTasks.Csc"任务程序文件(x86)\ Jenkins\workspace \new 3\packages\Microsoft.Net.Compilers.2.1.0\build ..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll.无法加载文件或程序集"Microsoft.Build.Utilities.Core,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"或其依赖项之一.该系统找不到指定的文件.确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类.[C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2.csproj]完成构建项目"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2.csproj"(默认目标) - 失败.项目"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2.sln"(1)正在构建"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2.Tests\WebApplication2".节点1上的Tests.csproj"(3)(默认目标).项目文件包含ToolsVersion ="15.0".此工具集可能未知或缺失,在这种情况下,您可以通过安装相应版本的MSBuild来解决此问题,或者出于策略原因,可能已将构建强制转换为特定的ToolsVersion.像处理ToolsVersion ="4.0"那样处理项目.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=291333.项目"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2.Tests\WebApplication2.Tests.csproj"(3)正在构建"C:\ Program Files(x86)\ Jenkins\workspace \new 3 \节点1上的WebApplication2\WebApplication2.csproj"(2:2)(默认目标).项目文件包含ToolsVersion ="15.0".此工具集可能未知或缺失,在这种情况下,您可以通过安装相应版本的MSBuild来解决此问题,或者出于策略原因,可能已将构建强制转换为特定的ToolsVersion.像处理ToolsVersion ="4.0"那样处理项目.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=291333.C:\ Program Files(x86)\ Jenkins\workspace \new 3\packages\Microsoft.Net.Compilers.2.1.0\build\Microsoft.Net.Compilers.props(13,5):错误:Microsoft.Net.Compilers仅在MSBuild v14.0及更高版本上支持[C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2.csproj]完成构建项目"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2.csproj"(默认目标) - FAILED.完成构建项目"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2.Tests\WebApplication2.Tests.csproj"(默认目标) - FAILED.完成构建项目"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2.sln"(默认目标) - FAILED.

建立失败.

"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2.sln"(默认目标)(1) - >"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2 .csproj"(默认目标)(2) - >(CoreCompile目标) - > C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets(316,9):错误MSB4062:"Microsoft .CodeAnalysis.BuildTasks.Csc"无法从程序集C:\ Program Files(x86)\ Jenkins\workspace \new 3\packages\Microsoft.Net.Compilers.2.1.0\build ..\tools\Microsoft加载任务.Build.Tasks.CodeAnalysis.dll.无法加载文件或程序集"Microsoft.Build.Utilities.Core,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"或其依赖项之一.该系统找不到指定的文件.确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类.[C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2.csproj]

"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2.sln"(默认目标)(1) - >"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2.Tests\WebApplication2.Tests.csproj"(默认目标)(3) - >"C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2.csproj"(默认目标)(2:2) - > (ValidateMSBuildToolsVersion target) - > C:\ Program Files(x86)\ Jenkins\workspace \new 3\packages\Microsoft.Net.Compilers.2.1.0\build\Microsoft.Net.Compilers.props(13,5):error :Microsoft.Net.Compilers仅在MSBuild v14.0及更高版本上受支持[C:\ Program Files(x86)\ Jenkins\workspace \new 3\WebApplication2\WebApplication2.csproj]

0 Warning(s)
2 Error(s)
Run Code Online (Sandbox Code Playgroud)

已用时间00:00:00.37生成步骤"建设的MSBuild使用Visual Studio项目或解决方案"标记为建立成品失败:失败

Mar*_*ich 6

包本身已经记录了重要的错误消息:

Microsoft.Net.Compilers仅在MSBuild v14.0及更高版本上受支持

您正在使用随.NET Framework一起分发的msbuild版本,这是一个旧版本(v4).使用VS 2017/Build Tools for VS 2017随附的版本的路径应该是这样的

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe
Run Code Online (Sandbox Code Playgroud)

(替换Enterprise为您在服务器上安装的VS/Build Tools版本)