2017-10-04 1 views
0

J'essaie de construire à partir de Jenkins une solution Vistual Studio 2017 contenant 2 projets: projets ASP.NET et Test.Jenkins ne parvient pas à construire le projet C#

S'il vous plaît dites-moi si vous avez besoin de plus de détails.

Configurations:

enter image description here

enter image description here

Les erreurs dans la sortie de la console:

C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft. CSharp.targets (316,9): erreur MSB4062: la tâche "Microsoft.CodeAnalysis.BuildTasks.Csc" peut ne pas être chargé à partir de l'assembly C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ packages \ Microsoft.Net.Compilers.2.1.0 \ build .. \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll. Impossible de charger le fichier ou l'assemblage 'Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié. Confirmez que la déclaration est correcte, que l'assembly et toutes ses dépendances sont disponibles et que la tâche contient une classe publique qui implémente Microsoft.Build.Framework.ITask. [C: \ Program Files (x86) \ workspace Jenkins \ \ 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): erreur: Microsoft.Net.Compilers est uniquement pris en charge sur MSBuild v14.0 et ci-dessus [C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj]

sortie de la console complète:

a commencé par l'utilisateur Stav ALFI Building dans l'espace de travail C: \ Program Files (x86) \ Jenkins \ workspace \ new 3

git.exe rev-parse --les-inside-travail-arbre # délai d'attente = 10 modifications du référentiel Comparaison Git distant git.exe config remote.origin.url https://github.com/stavalfi/c_sharp_example_project.git # timeout = 10 modifications en amont de Récupération https://github.com/stavalfi/c_sharp_example_project.git git.exe --version # timeout = 10 git.exe vont chercher --tags --progress https://github.com/stavalfi/c_sharp_example_project.git+refs/heads/: refs/télécommandes/origine/ git.exe rev-parse "refs/télécommandes/origine/maître^{commit}" # timeout = 10 git.exe rev-parse "références/télécommandes/origine/origine/maître^{commit}" # timeout = 10 Vérification Révision a70858995d5557ae1483965072e2a66833f9979d (réfs/télécommandes/origine/maître) git.exe config core.sparsecheckout # timeout = 10 git.exe checkout -f a70858995d5557ae1483965072e2a66833f9979d Message de validation: "Ajouter des fichiers de projet". git.exe rev-list a70858995d5557ae1483965072e2a66833f9979d # timeout = 10 [nouveau 3] $ cmd/c appel C: \ WINDOWS \ TEMP \ jenkins5187263831491564261.bat

C: \ Program Files (x86) \ Jenkins \ workspace \ new 3> NuGet restaurer MSBuild auto-détection: en utilisant la version msbuild '15 .3.409.57025' de « C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ bin '. Tous les paquets listés dans packages.config sont déjà installés.

C: \ Program Files (x86) \ Jenkins \ workspace \ new 3> exit 0 Path To MSBuild.exe: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ msbuild.exe exécution de la commande cmd.exe/C "chcp 1252 & & C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ msbuild.exe /p:VisualStudioVersion=12.0 WebApplication2.sln" & & sortie %% %% ERRORLEVEL à partir de C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 [nouveau 3] $ cmd.exe/C "chcp 1252 & & C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ msbuild. exe /p:VisualStudioVersion=12.0 WebApplication2.sln "& & sortie %% ERRORLEVEL %% page de code actif: 1252 Microsoft (R) Créer moteur Version 4.7.2053.0 [Microsoft .NET Framework version 4.0.30319.42000] Droit d'auteur (C) Microsoft Corporation. Tous les droits sont réservés.

Construire les projets dans cette solution un à la fois. Pour activer la construction parallèle , ajoutez le commutateur "/ m". Générer commencé 04/10/2017 19:16:39. Projet "C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2.sln" sur le nœud 1 (cibles par défaut). ValidateSolutionConfiguration: Configuration de la solution de construction "Debug | Any CPU". Le projet "C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2.sln" (1) construit "C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2. csproj " (2) sur le noeud 1 (cibles par défaut). Le fichier de projet contient ToolsVersion = "15.0". Ce jeu d'outils peut être inconnu ou manquant, dans lequel cas vous pouvez résoudre ce problème en installant la version appropriée de MSBuild, ou la version peut avoir été forcée à une ToolsVersion particulière pour des raisons de stratégie. Traitement du projet comme s'il avait ToolsVersion = "4.0". Pour plus d'informations, veuillez voirhttp: //go.microsoft.com/fwlink/?LinkId = 291333. GenerateTargetFrameworkMonikerAttribute: Ignorer la cible "GenerateTargetFrameworkMonikerAttribute" car tous les fichiers de sortie sont à jour par rapport aux fichiers d'entrée. C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.CSharp.targets (316,9): erreur MSB4062: la tâche «Microsoft.CodeAnalysis.BuildTasks.Csc» peut être chargée à partir de l'assembly C: \ Program Files (x86) \ Jenkins \ espace de travail \ nouveau 3 \ packages \ Microsoft.Net.Compilers.2.1.0 \ build .. \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll. Impossible de charger le fichier ou l'assemblage 'Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié. Confirmez que la déclaration est correcte, que l'assembly et toutes ses dépendances sont disponibles et que la tâche contient une classe publique qui implémente Microsoft.Build.Framework.ITask. [C: \ Fichiers programme (x86) \ Jenkins \ espace de travail \ nouveau 3 \ WebApplication2 \ WebApplication2.csproj] Terminé Projet de construction "C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2 .csproj "(cibles par défaut) - ÉCHEC. Projet "C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2.sln" (1) crée "C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2. Tests \ WebApplication2.Tests.csproj "(3) sur le noeud 1 (cibles par défaut). Le fichier projet contient ToolsVersion = "15.0". Cet ensemble d'outils est peut-être inconnu ou manquant, auquel cas vous pouvez résoudre ce problème en installant la version appropriée de MSBuild, ou la version peut avoir été forcée à une version particulière de ToolsVersion pour la politique . Traiter le projet comme s'il avait ToolsVersion = "4.0". Pour plus d'informations, veuillez consulter http://go.microsoft.com/fwlink/?LinkId=291333. Projet "C: \ Program Fichiers (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2.Tests \ WebApplication2.Tests.csproj" (3) est en cours de construction "C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj "(2: 2) sur le nœud 1 (cibles par défaut). Le fichier projet contient ToolsVersion = "15.0". Ce jeu d'outils peut être inconnu ou manquant. Dans ce cas, vous pouvez résoudre ce problème en installant la version appropriée de MSBuild, ou la version peut avoir été forcée vers une version spécifique de ToolsVersion pour des raisons de politique. Traitement du projet comme s'il contenait ToolsVersion = "4.0". Pour plus d'informations, veuillez consulter 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): erreur : Microsoft. Net.Compilers n'est pris en charge que sur MSBuild v14.0 et ci-dessus [C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj] Terminé Projet de construction "C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj "(cibles par défaut) - ÉCHEC. Terminé Projet de construction "C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2.Tests \ WebApplication2.Tests.csproj" (par défaut ) - ÉCHEC. Terminé Projet de construction "C: \ Program Files (x86) \ Jenkins \ espace de travail \ nouveau 3 \ WebApplication2.sln" (cibles par défaut) - ÉCHEC.

Échec de construction.

"C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2.sln" (cible par défaut) (1) -> « C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj "(cible par défaut) (2) -> (cible CoreCompile) -> C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.CSharp.targets (316,9): erreur MSB4062: la tâche "Microsoft.CodeAnalysis.BuildTasks.Csc" peut ne pas être chargé à partir de l'assembly C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ packages \ Microsoft.Net.Compilers .2.1.0 \ build .. \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll. Impossible de charger le fichier ou l'assemblage 'Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié. Confirmez que la déclaration est correcte, que l'assembly et toutes ses dépendances sont disponibles et que la tâche contient une classe publique qui implémente 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" (cible par défaut) (1) -> "C: \ Program Files (x86) \ Jenkins \ espace de travail \ nouveau 3 \ WebApplication2.Tests \ WebApplication2.Tests.csproj" (cible par défaut) (3) -> "C : \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj "(cible par défaut) (2: 2) -> (Valider la cible MSBuildToolsVersion) -> C: \ Program Files (x86) \ Jenkins \ espace de travail \ new 3 \ packages \ Microsoft.Net.Compilers.2.1.0 \ build \ Microsoft.Net.Compilers.props (13,5): erreur: Microsoft.Net.Compilers est uniquement pris en charge sur MSBuild v14.0 et ci-dessus [C: \ Program Files (x86) \ Jenkins \ workspace \ new 3 \ WebApplication2 \ WebApplication2.csproj]

0 Warning(s) 
2 Error(s) 

temps écoulé 00: 00: 00.37 étape de construction 'construire un projet Visual studio ou solution en utilisant MSBuild' a marqué la construction comme un échec fini: nON

Répondre

3

Le message d'erreur importante est déjà enregistrée par le paquet lui-même:

Microsoft.Net.Compilers est pris en charge que sur v14.0 MSBuild et au-dessus

Vous utilisez la version distribuée msbuild avec .NET Framework, qui est une ancienne version (v4). Utilisez le chemin vers la version distribuée avec VS 2017/Construire des outils pour VS 2017 qui devrait être comme

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

(remplacer Enterprise avec la version de VS/Construire des outils que vous avez installé sur le serveur)

1

L'erreur

Microsoft.Net.Compilers est uniquement pris en charge sur MSBuild v14.0 et au-dessus

est très révélateur. Vous essayez d'utiliser un compilateur Nuget C# (probablement C# 7) mais le support des compilateurs Nuget a été introduit dans VS 2015 (MSBuild 14). Vous devez avoir votre projet Jenkins utiliser cette version de MSBuild ou supérieur.

Si vous avez accès à l'esclave de construction; Le moyen le plus simple d'y arriver est de simplement installer l'édition de la communauté de Visual Studio 2015 ou plus et de pointer vers MSBuild de l'installation.

+0

Qu'est-ce Nuget C# compilateur? Comment est-ce différent du compilateur C#? –

+1

@StavAlfi VS 2015 a introduit le concept de remplacer le compilateur intégré par un compilateur téléchargé depuis Nuget. Vous utilisez un package System.Compilers; par conséquent, je crois que c'est la source que vous utilisez. – BradleyDotNET