.net Jenkins生成失败-缺少文件Microsoft.build.Utilities.Core

.net Jenkins生成失败-缺少文件Microsoft.build.Utilities.Core,.net,visual-studio,jenkins,msbuild,csc,.net,Visual Studio,Jenkins,Msbuild,Csc,我在詹金斯建立了一个新项目。 当我尝试构建它时,会出现以下错误: “E:\Jenkins\workspace\MWAPIv1\My.WebAPIv1.sln”(默认目标)(1)-> “E:\Jenkins\workspace\MWAPIv1\My.WebAPIv1\My.WebAPIv1.csproj”(默认目标)(2)-> (核心编译目标)-> C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets(316,

我在詹金斯建立了一个新项目。 当我尝试构建它时,会出现以下错误:

“E:\Jenkins\workspace\MWAPIv1\My.WebAPIv1.sln”(默认目标)(1)-> “E:\Jenkins\workspace\MWAPIv1\My.WebAPIv1\My.WebAPIv1.csproj”(默认目标)(2)-> (核心编译目标)-> C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets(316,9):错误MSB4062:无法从程序集中加载“Microsoft.CodeAnalysis.BuildTasks.Csc”任务E:\Jenkins\workspace\MWAPIv1\packages\Microsoft.NET.Compilers.2.2.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的公共类。[E:\Jenkins\workspace\MWAPIv1\My.WebAPIv1\My.WebAPIv1.csproj]

该项目使用NET4.5.2框架

其他一些可能有用的信息: 由于错误提到缺少DLL,我将所有文件(包括packages文件夹和SVN的内容)都签入,但这没有帮助。 我还更新了VS2015中的所有Nuget软件包,并签入了所有更新。 Jenkins中的项目配置为:
MSBuild版本:Microsoft.NET Framework v4.0
MSBuild生成文件:My.WebAPIv1.sln
命令行参数:/p:VisualStudioVersion=14.0

my Jenkins服务器中存在以下文件夹:

C:\ProgramFiles(x86)\MSBuild\Microsoft\VisualStudio\TeamBuild

C:\ProgramFiles(x86)\MSBuild\Microsoft\VisualStudio\v9.0

C:\ProgramFiles(x86)\MSBuild\Microsoft\VisualStudio\v10.0

C:\ProgramFiles(x86)\MSBuild\Microsoft\VisualStudio\v14.0

有什么想法可以让我的项目建立起来吗


感谢

您的生成正在使用.net framework提供的MSBuild版本(4.0.30319)运行,该版本非常旧,并且具有与
Microsoft.net.Compilers
NuGet软件包所期望的不同的体系结构,您似乎使用该体系结构覆盖旧的生成目标以使用新的编译器


为此,请使用更新版本的MSBuild,例如VS 2015在
C:\Program Files(x86)\MSBuild\14.0\Bin\MSBuild.exe
(可选:安装并使用“visual studio的构建工具”2015或2017)

您尝试过Martin的建议吗?他的回答对你有帮助吗?如果没有,请告诉我们此问题的最新状态。对我来说,解决此问题的方法是删除两个nuget软件包:
Microsoft.Net.Compilers
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
,然后签入。然后在詹金斯建立了一个很好的系统。然而,我在一个MVC项目中遇到了同样的问题,删除上面的包会导致我的项目出现500错误页面。我会试试马丁斯的解决方案。