build.net application à Jenkins en utilisant MSBuild

j'ai une application .net construite sur .net framework 3.5, j'essaye de construire cette application sur Jenkins CI server. J'ai ajouté MSBuild plugin et et j'ai ajouté path to the .fichier exe des versions 2.0, 3.5 et 4.0 de MSBuild. Mais mes processus de construction échouent en montrant le message d'erreur ci-dessous.

Path To MSBuild.exe: msbuild.exe  
Executing command: cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%%  
[Test project] $ cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%%  
'msbuild.exe' is not recognized as an internal or external command,  
operable program or batch file.  
Build step 'Build a Visual Studio project or solution using MSBuild.' marked uild as failure  
Finished: FAILURE  

quelqu'un Pourrait-il m'aider plz..??

29
demandé sur Shrayas 2012-04-19 16:21:59

5 réponses

pour faire fonctionner le plugin MSBuild, vous devez configurer le plugin dans L'écran de gestion de Jenkins.

NOTE: dans les versions plus récentes de Jenkins, vous trouverez la configuration MSBuild dans la Configuration de L'outil Global:

enter image description here


Jenkins MSBuild Installation Configuration

Notez le champ "Name", où j'ai appelé cette configuration particulière v4.0.30319. Vous pouvez l'appeler comme vous voulez, mais idéalement le nom sera d'une façon ou d'une autre, faites référence à la version.

vous aurez besoin de se référer à ce nom plus tard dans le projet Jenkins qui échoue.

Note: l'avertissement jaune implique que le champ Path to MSBuild doit être rempli avec un nom de répertoire plutôt qu'un nom de fichier. Dans la pratique, vous devez entrer le nom du fichier ici aussi (c.-à-d. msbuild.exe) ou l'étape de construction échouera.

dans le projet Jenkins qui échoue, allez à L'étape de construction MSBuild.

Le premier champ de l'étape de construction est "MSBuild Version". Si vous avez créé l'étape de compilation avant de configurer les versions de MSBuild, la valeur ici sera (par défaut).

Jenkins MSBuild build-step, with (default) msbuild configuration selected

après avoir configuré une ou plusieurs versions de MSBuild, le menu déroulant sera rempli avec les configurations disponibles. Sélectionnez celui que vous désirez.

vous pouvez voir ici que j'ai maintenant sélectionné la configuration nommée qui correspond à l'installation surtout.

Jenkins MSBuild build-step, with named msbuild configuration selected

73
répondu Damith 2017-12-06 14:25:21
Jenkins | Manage Jenkins | Configure System

faites défiler vers le bas jusqu'à la section MSBuild et cliquez installations MSBuild

définir le chemin complet vers msbuild.exe, sur mon système, j'ai 3.5 et v4.0.30319

Note-spécifiez le chemin vers les outils 32 bits même sur un système 64 bits, sinon vous pourriez recevoir un message d'erreur:

construire L'application Windows Phone en utilisant MSBuild 64 bit n'est pas supporté.

ainsi dans Jenkins-il pourrait être par exemple:

Nom de: Version 3.5

Chemin: C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe

Nom: Version 4.0

Chemin: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe

13
répondu Pavel Zeman 2012-12-04 01:03:12

je pense que vous devriez mettre un chemin absolu pour "msbuild.exe " dans votre configuration de Jenkins, par exemple:

C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe
6
répondu fmgp 2012-04-19 12:26:28

vous pouvez aussi ajouter le chemin où le msbuild.exe est, à la variable D'environnement du système de chemin du noeud (ou des noeuds) qui exécute ce travail spécifique.

1
répondu Ignacio Fernández 2015-10-21 08:38:28

Vous pouvez essayer d'exécuter le

%comspec% /k ""c:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86

commande, qui mettra temporairement à jour vos variables de chemin d'environnement pour refléter L'environnement de construction VS2010. Exécutez ceci avant D'appeler MSBUILD et voyez ce qui se passe. - Je l'utiliser dans mes propres scripts sans problèmes.

note latérale; il est très probablement contre-productif d'avoir plusieurs versions de MSBUILD sur votre chemin. Concentrez-vous sur l'obtention d'une version de travail et aller de là.

-2
répondu Mel Padden 2012-04-19 12:27:08