c# - Jenkins 未能建立C#项目

标签 c# visual-studio jenkins msbuild

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

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

配置:

enter image description here

enter image description here

控制台输出中的错误:


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,文化=中性,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):
错误:仅MSBuild v14.0和更高版本支持Microsoft.Net.Compilers
以上[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配置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
git.exe获取--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}”#超时= 10
git.exe rev-parse“ refs / remotes / origin / origin / master ^ {commit}”#timeout = 10检出修订版
a70858995d5557ae1483965072e2a66833f9979d(参考/远程/来源/主控)
git.exe配置core.sparsecheckout#timeout = 10
git.exe签出-f a70858995d5557ae1483965072e2a66833f9979d提交消息:“添加项目文件”。
git.exe rev-list a70858995d5557ae1483965072e2a66833f9979d#timeout = 10 [new 3] $ cmd / c调用
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
Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ bin'。列出的所有软件包
packages.config已经安装。

C:\ Program Files(x86)\ Jenkins \ workspace \ new 3>退出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 \ workspace \ new 3的%% ERRORLEVEL %%
[新3] $ cmd.exe / C“ chcp 1252 &&
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ msbuild.exe
/p:VisualStudioVersion=12.0 WebApplication2.sln“ &&退出
%% ERRORLEVEL %%活动代码页:1252 Microsoft(R)构建引擎
版本4.7.2053.0 [Microsoft .NET Framework版本4.0.30319.42000]
版权所有(C)Microsoft Corporation。版权所有。

一次构建一个此解决方案中的项目。启用
并行构建,请添加“ / m”开关。开始构建04/10/2017
19:16:39。项目“ C:\ Program Files(x86)\ Jenkins \ workspace \ new
节点1上的“ 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。像对待项目一样对待项目
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,文化=中性,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
节点1上的3 \ WebApplication2.Tests \ WebApplication2.Tests.csproj“(3)
(默认目标)。项目文件包含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
节点1上的3 \ 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):
错误:仅MSBuild v14.0和更高版本支持Microsoft.Net.Compilers
以上[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 \ 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,文化=中性,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目标)-> C:\ Program Files
(x86)\ Jenkins \ workspace \ new
3 \ packages \ Microsoft.Net.Compilers.2.1.0 \ build \ Microsoft.Net.Compilers.props(13,5):
错误:仅MSBuild v14.0和更高版本支持Microsoft.Net.Compilers
以上[C:\ Program Files(x86)\ Jenkins \ workspace \ new
3 \ WebApplication2 \ WebApplication2.csproj]

0 Warning(s)
2 Error(s)


经过的时间00:00:00.37生成步骤'生成Visual Studio项目或
使用MSBuild的解决方案将生成标记为失败完成:FAILURE

最佳答案

错误


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


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

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

关于c# - Jenkins 未能建立C#项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46569762/

相关文章:

maven - 无法索引两次 - testSourceDirectory 和 sourceDirectory 相同

c# - 对 .net 框架解决方案中的子项目使用较新的目标框架 .net 标准

c++ - Visual C++ 2010 native Intellisense 设置

docker - Docker Jenkins容器因严重的jenkins而崩溃。InitReactorRunner $ 1#onTaskFailed:失败的ConfigurationAsCode.init

Jenkins 奴隶工作在成功工作后失败

java - Visual Studio Java IDE

c# - 允许 NullReferenceException 发生的可能性是一件坏事吗?

c# - 如何允许用户在我的 MVC 网站上创建自己的子域?

c# - 有没有办法工厂注入(inject)自定义 DbContext?

c# - 如果引用特定库,如何标记要编译的 C# 代码的一部分;如果没有引用特定库,则忽略它?