construire une application .net dans Jenkins avec MSBuild

J’ai une application .net construite sur .net framework 3.5, j’essaie de construire cette application sur un serveur Jenkins CI. J’ai ajouté le plugin MSBuild et le chemin d’access au fichier .exe des versions 2.0, 3.5 et 4.0 de MSBuild. Mais mes processus de construction échouent en affichant 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 svz .. ??

Pour que le plug-in MSBuild fonctionne, vous devez le configurer dans l’écran de gestion de Jenkins.

REMARQUE: dans les nouvelles versions de Jenkins, vous trouvez la configuration MSBuild dans la configuration globale de l’outil:

entrez la description de l'image ici


Jenkins MSBuild Installation Configuration

Notez le champ “Nom”, où j’ai appelé cette configuration particulière v4.0.30319. Vous pouvez l’appeler comme bon vous semble, mais idéalement, le nom fera référence à la version.

Vous devrez faire référence à ce nom plus tard dans le PROJET Jenkins qui échoue.

Remarque: l’avertissement jaune implique que le champ Chemin d’access à MSBuild doit être renseigné avec un nom de répertoire plutôt qu’un nom de fichier. En pratique, vous devez également entrer le nom de fichier ici (c.-à-d. Msbuild.exe), sinon l’étape de génération échouera.

Dans le projet Jenkins qui échoue, passez à l’étape de génération de MSBuild.

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

Jenkins MSBuild-build-step, avec la configuration msbuild (par défaut) sélectionnée

Après avoir configuré une ou plusieurs versions de MSBuild, la liste déroulante contient les configurations disponibles. Sélectionnez celui dont vous avez besoin.

Vous pouvez voir ici que j’ai maintenant sélectionné la configuration nommée qui correspond à l’installation ci-dessus.

Jenkins MSBuild-build-step, avec la configuration nommée msbuild sélectionnée

 Jenkins | Manage Jenkins | Configure System 

faites défiler jusqu’à la section MSBuild et cliquez sur Installations MSBuild

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

Remarque – spécifiez le chemin d’access aux outils 32 bits, même sur un système 64 bits, sinon vous pourriez recevoir un message d’erreur:

La création d’une application Windows Phone à l’aide de MSBuild 64 bits n’est pas prise en charge.

Donc, dans Jenkins – cela pourrait être par exemple:

Nom: Version 3.5

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

Nom: Version 4.0

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

Je pense que vous devriez définir un chemin absolu pour “msbuild.exe” dans votre configuration Jenkins, par exemple:

 C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe 

Vous pouvez également append le chemin d’access où se trouve msbuild.exe à la variable d’environnement système PATH du ou des nœuds exécutant 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 les variables de chemin de votre environnement afin de refléter l’environnement de génération VS2010. Exécutez cette opération avant d’appeler MSBUILD et voyez ce qui se passe. J’utilise ceci dans mes propres scripts de compilation sans aucun problème.

Note de côté; il est très probablement contre-productif d’avoir plusieurs versions de MSBUILD sur votre PATH. Concentrez-vous sur l’utilisation d’une seule version et partez de là.