2017-10-04 103 views
0

我试图从jenkins构建包含2个项目的Vistual Studio 2017解决方案:ASP.NET和测试项目。Jenkins无法构建C#项目

请告诉我,如果你需要更多的细节。

配置:

enter image description here

enter image description here

在控制台输出中的错误:

C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \微软。 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, 版本= 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或 其依赖项之一。该系统找不到指定的文件。 确认声明是正确的,程序集 及其所有依赖关系都可用,并且任务包含实现Microsoft.Build.Framework.ITask的公共类。 [C:\ Program Files文件(x86)的\詹金斯\工作区\新 3 \ WebApplication2 \ WebApplication2.csproj]

C:\ Program Files文件(x86)的\詹金斯\工作区\新 3 \ \包微软。 Net.Compilers.2.1.0 \ build \ Microsoft.Net.Compilers.props(13,5): 错误:Microsoft.Net.Compilers仅支持上述MSBuild v14.0和 [C:\ Program Files(x86 )\詹金斯\工作空间\新 3 \ WebApplication2 \ WebApplication2.csproj]

全控制台输出:

在工作区下开始由用户STAV ALFI大厦:\ Program Files文件 (x86)的\詹金斯\工作区\新3

git.exe REV-解析--is-内工作树#超时=从远程Git仓库 git.exe配置remote.origin.url https://github.com/stavalfi/c_sharp_example_project.git#超时= 10 撷取上游更改自 https://github.com/stavalfi/c_sharp_example_project.git git.exe --version#超时10名读取更改= 10 git.exe取--tags - 进度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}”#timeout = 10检出版本号 a70858995d5557ae1483965072e2a66833f9979d(refs/remotes/origin/master) git.exe config core.sparsecheckout#timeout = 10 git.exe checkout -f a70858995d5557ae1483965072e2a66833f9979d提交消息:“添加项目文件”。 git.exe rev-list a70858995d5557ae1483965072e2a66833f9979d#timeout = 10 [new 3] $ cmd/c call C:\ WINDOWS \ TEMP \ jenkins5187263831491564261。蝙蝠

C:\程序文件(x86)\詹金斯\工作空间\新3>的NuGet恢复的MSBuild 自动检测:使用的MSBuild版本'15 .3.409.57025' 从 “C:\程序文件(x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ bin'。在 packages.config中列出的所有软件包已经安装。

C:\ Program Files文件(x86)的\詹金斯\工作区\新3>退出0路径要 MSBuild.exe:C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ msbuild.exe 执行的CMD.EXE命令/ C “CHCP 1252 & & C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ msbuild.exe /p:VisualStudioVersion=12.0 WebApplication2.sln” & &退出 %% ERRORLEVEL %%从C:\ Program Files(x86)\ Jenkins \ 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“& &退出 %% ERRORLEVEL %%活动代码页:1252微软(R)构建引擎 版本4.7.2053.0 [Microsoft .NET框架版本4.0.30319.42000] 版权所有( C)微软公司。版权所有。

一次构建一个解决方案中的项目。要启用 并行构建,请添加“/ m”开关。开始建设04/10/2017 19:16:39。在节点1上的项目“C:\ Program Files(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2.sln”(默认目标)。 ValidateSolutionConfiguration:构建解决方案配置 “调试|任何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 =“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:不能从程序集加载“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, 版本= 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或 其依赖项之一。该系统找不到指定的文件。 确认声明是正确的,程序集 及其所有依赖关系都可用,并且任务包含实现Microsoft.Build.Framework.ITask的公共类。 [C:\ Program Files(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2 [C:\ Program Files(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj] Done Building Project .csproj“(默认目标) - 失败。 (1)正在构建“C:\ Program Files文件 (x86)\ Jenkins \ workspace \ new 3 \ WebApplication2”项目“C:\ Program Files文件(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2.sln”测试\ WebApplication2.Tests.csproj“(3)在节点1上 (默认目标)。项目文件包含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 \新的 3 \ WebApplication2 \ WebApplication2.csproj“(2:2)在节点1上(默认 目标)。项目文件包含ToolsVersion =“15.0”。该工具箱可以 是未知或丢失,在这种情况下,您可以通过安装的MSBuild,或构建合适的版本来解决这个 可能 已经被迫特定ToolsVersion政策的原因。 处理项目就好像它有ToolsVersion =“4.0”。有关更多 的信息,请参阅http://go.microsoft.com/fwlink/?LinkId=291333。 C:\ Program Files文件(x86)的\詹金斯\工作区\新 3 \包\ Microsoft.Net.Compilers.2.1.0 \建立\ Microsoft.Net.Compilers.props(13,5): 错误:微软。 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“(默认目标) - 失败。 完成建设项目 “C:\ Program Files文件(x86)的\詹金斯\工作区\新 3 \ WebApplication2.Tests \ WebApplication2.Tests.csproj”(默认 目标) - 失败。 Done Building Project“C:\ Program Files (x86)\ Jenkins \ workspace \ new 3 \ WebApplication2.sln”(默认目标) - FAILED。

构建失败。 (默认目标)(1) - >“C:\ Program Files文件(x86)\ Jenkins \ workspace \ new”(C:\ Program Files(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2.sln) (默认目标)(2) - > (CoreCompile target) - > 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 \建.. \工具\ Microsoft.Build.Tasks.CodeAnalysis.dll。 无法加载文件或程序集“Microsoft.Build.Utilities.Core, 版本= 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或 其依赖项之一。该系统找不到指定的文件。 确认声明是正确的,程序集 及其所有依赖关系都可用,并且任务包含实现Microsoft.Build.Framework.ITask的公共类。 [C:\程序文件(x86)\詹金斯\工作空间\新 3 \ WebApplication2 \ WebApplication2.csproj]

“C:\程序文件(x86)\詹金斯\工作空间\新3 \ WebApplication2.sln” (默认目标) (3) - >“C:\ Program Files(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2.Tests \ WebApplication2.Tests.csproj” :Program Files(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj“(default target)(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): 错误:Microsoft.Net.Compilers只支持的MSBuild v14.0和 上述[C:\程序文件(x86)\詹金斯\工作空间\新 3 \ WebApplication2 \ WebApplication2.csproj]

0 Warning(s) 
2 Error(s) 

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

回答

3

重要的错误信息已经被封装本身登录:

Microsoft.Net.Compilers只支持MSBuild的v14.0及以上

您正在使用分布式的版本的MSBuild与.NET Framework,这是一个旧版本(V4)。使用路径与VS 2017年发布的版本/构建VS 2017年工具,应该像

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe 

1

错误

Microsoft.Net.Compilers仅支持MSBuild v14.0及以上版本

非常明显。您正尝试使用Nuget C#编译器(可能是C#7),但是在VS 2015(MSBuild 14)中引入了对Nuget编译器的支持。您需要让Jenkins项目使用该版本的MSBuild或更高版本。

如果您有权访问构建从站;最简单的方法是安装社区版的Visual Studio 2015或更高版本,并指向安装的MSBuild。

+0

什么是(与您已安装在服务器上的VS /构建工具的版本替换Enterprise) nuget C#编译器?它与C#编译器有何不同? –

+1

@StavAlfi VS 2015引入了用Nuget下载的内置编译器替换内置编译器的概念。您正在使用System.Compilers包;因此我相信这是您使用的来源。 – BradleyDotNET