我试图从jenkins构建包含2个项目的Vistual Studio 2017解决方案:ASP.NET和测试项目。
如果您需要更多详细信息,请告诉我。
配置:
控制台输出中的错误:
C:\ Windows \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.CSharp.targets(316,9): 错误MSB4062:" Microsoft.CodeAnalysis.BuildTasks.Csc"任务可以 不能从程序集C:\ Program Files中加载 (86)\詹金斯\工作空间\新 3个\包\ Microsoft.Net.Compilers.2.1.0 \建.. \工具\ 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个\包\ Microsoft.Net.Compilers.2.1.0 \建立\ 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.exe rev-parse --is-inside-work-tree #timeout = 10从远程Git存储库中获取更改 git.exe config remote.origin.url https://github.com/stavalfi/c_sharp_example_project.git #timetime = 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 自动检测:使用msbuild版本' 15.3.409.57025'从 ' C:\ Program Files(x86)\ Microsoft Visual 工作室\ 2017年\企业\的MSBuild \ 15.0 \ BIN&#39 ;.列出的所有包裹 packages.config已经安装。
C:\ Program Files(x86)\ Jenkins \ workspace \ new 3> exit 0 Path To MSBuild.exe:C:\ Windows \ Microsoft.NET \ Framework \ 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" &安培;&安培;出口 来自C:\ Program Files(x86)\ Jenkins \ workspace \ new 3的%% ERRORLEVEL %% [新3] $ cmd.exe / C" chcp 1252&& C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ msbuild.exe /p:VisualStudioVersion=12.0 WebApplication2.sln" &安培;&安培;出口 %% ERRORLEVEL %%活动代码页:1252 Microsoft(R)Build Engine 版本4.7.2053.0 [Microsoft .NET Framework,版本4.0.30319.42000] 版权所有(C)Microsoft Corporation。保留所有权利。
一次一个地在此解决方案中构建项目。启用 并行构建,请添加" / m"开关。建立开始于04/10/2017 十九时16分39秒。项目" C:\ Program Files(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2.sln"在节点1上(默认目标)。 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&#34 ;.此工具集可能未知或缺失,其中 您可以通过安装适当的方法解决此问题 MSBuild的版本,或者构建可能已被强制转换为特定版本 ToolsVersion出于政策原因。像对待项目那样对待项目 ToolsVersion =" 4.0&#34 ;.有关更多信息,请 seehttp://go.microsoft.com/fwlink/链路ID = 291333。 GenerateTargetFrameworkMonikerAttribute:跳过目标 " GenerateTargetFrameworkMonikerAttribute"因为所有输出文件都是 关于输入文件的最新信息。 C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.CSharp.targets(316,9): 错误MSB4062:" Microsoft.CodeAnalysis.BuildTasks.Csc"任务可以 不能从程序集C:\ Program Files中加载 (86)\詹金斯\工作空间\新 3个\包\ Microsoft.Net.Compilers.2.1.0 \建.. \工具\ 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 (86)\詹金斯\工作空间\新 3 \ WebApplication2.Tests \ WebApplication2.Tests.csproj" (3)在节点1上 (默认目标)。项目文件包含ToolsVersion =" 15.0"。这个 工具集可能未知或缺失,在这种情况下您可能会 通过安装适当版本的MSBuild或者解决此问题 构建可能已被迫使用特定的ToolsVersion进行策略 原因。将项目视为具有ToolsVersion =" 4.0"。对于 更多信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=291333。项目" C:\ Program 文件(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2.Tests \ WebApplication2.Tests.csproj" (3)正在建设中 " C:\ Program Files(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj"节点1上的(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个\包\ Microsoft.Net.Compilers.2.1.0 \建立\ 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" (默认目标) - 失败。 完成构建项目" C:\ Program Files(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2.Tests \ WebApplication2.Tests.csproj" (默认 目标) - 失败。完成建筑项目" C:\ Program Files (x86)\ Jenkins \ workspace \ new 3 \ WebApplication2.sln" (默认目标) - 失败。
构建失败。
" 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 \框架\ v4.0.30319 \ Microsoft.CSharp.targets(316,9): 错误MSB4062:" Microsoft.CodeAnalysis.BuildTasks.Csc"任务可以 不能从程序集C:\ Program Files中加载 (86)\詹金斯\工作空间\新 3个\包\ Microsoft.Net.Compilers.2.1.0 \建.. \工具\ 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 (86)\詹金斯\工作空间\新 3个\包\ Microsoft.Net.Compilers.2.1.0 \建立\ Microsoft.Net.Compilers.props(13,5): 错误:Microsoft.Net.Compilers仅在MSBuild v14.0和 上面的[C:\ Program Files(x86)\ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj]
0 Warning(s) 2 Error(s)
时间流逝00:00:00.37构建步骤'构建Visual Studio项目或 解决方案使用MSBuild'标记构建为失败完成:失败
答案 0 :(得分:6)
包裹本身已经记录了重要的错误消息:
仅在MSBuild v14.0及更高版本
上支持Microsoft.Net.Compilers
您正在使用随.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
(将Enterprise
替换为您在服务器上安装的VS / Build Tools版本)
答案 1 :(得分:2)
错误
仅在MSBuild v14.0及更高版本
上支持Microsoft.Net.Compilers
非常有说服力。您正在尝试使用Nuget C#编译器(可能是C#7),但在VS 2015(MSBuild 14)中引入了对Nuget编译器的支持。您需要让Jenkins项目使用该版本的MSBuild或更高版本。
如果您有权访问构建奴隶;最简单的方法是在其上安装Visual Studio 2015或更高版本的社区版,并指向安装的MSBuild。