2017-06-07 3 views
0

Ich habe ein neues Projekt in Jenkins eingerichtet. Wenn ich versuche, es zu bauen bekomme ich folgende Fehlermeldung:Jenkins Build fehlgeschlagen - fehlende Datei Microsoft.Build.Utilities.Core

"E:\Jenkins\workspace\MWAPIv1\My.WebAPIv1.sln" (default target) (1) -> "E:\Jenkins\workspace\MWAPIv1\My.WebAPIv1\My.WebAPIv1.csproj" (default target) (2) -> (CoreCompile target) -> C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets(316,9): error MSB4062: The "Microsoft.CodeAnalysis.BuildTasks.Csc" task could not be loaded from the assembly E:\Jenkins\workspace\MWAPIv1\packages\Microsoft.Net.Compilers.2.2.0\build..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll. Could not load file or assembly 'Microsoft.Build.Utilities.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. [E:\Jenkins\workspace\MWAPIv1\My.WebAPIv1\My.WebAPIv1.csproj]

Das Projekt verwendet NET 4.5.2 Framework.

Einige andere möglicherweise nützliche Informationen: Da der Fehler fehlende dlls erwähnt, habe ich alle Dateien, einschließlich der Pakete Ordner und Inhalt in SVN eingecheckt, aber das hat nicht geholfen. Ich habe auch alle Nuget-Pakete von VS2015 aktualisiert und alle Updates eingecheckt. Die Projektkonfiguration in Jenkins ist: MSBuild Version: Microsoft.NET Framework v4.0 MSBuild Build File: My.WebAPIv1.sln Command Line Arguments: /p:VisualStudioVersion=14.0

Die folgenden Ordner existieren in meinem Jenkins Server:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TeamBuild

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

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

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

Irgendwelche Ideen, wie mein Projekt bekommen zu bauen?

Dank

+0

haben Sie den Martin Vorschlag versucht? Hilft dir seine Antwort? Wenn nicht, lassen Sie uns den aktuellen Status dieser Frage wissen. –

+0

Die Lösung für diese spezielle Frage war für mich, zwei nugget-Pakete zu entfernen: 'Microsoft.Net.Compilers' und' Microsoft.CodeDom.Providers.DotNetCompilerPlatform' checken dann ein. Das ist dann in Jenkins okay. Ich habe jedoch das gleiche Problem mit einem MVC-Projekt und das Entfernen der oben genannten Pakete führt dazu, dass mein Projekt eine 500-Fehler-Seite liefert. Ich werde Martins Lösung dafür versuchen. – cdsln

Antwort

1

Ihre Build wird mit .NET Framework bereitgestellt Version von MSBuild (4.0.30319) ausgeführt wird, das ist ziemlich alt und hat eine andere Architektur, die die Microsoft.Net.Compilers NuGet Paket erwartet, die Sie zu verwenden scheinen Überschreiben Sie die alten Build-Ziele, um einen neueren Compiler zu verwenden.

Verwenden Sie eine neuere Version von MSBuild, damit dies funktioniert, z. die von VS 2015 bei C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe installierte installiert (Alternative: installieren und verwenden Sie die "Build-Tools für Visual Studio" 2015 oder 2017)