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..??
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:
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).
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 | 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
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
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.
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à.