web-dev-qa-db-fra.com

construire une application .net dans Jenkins en utilisant MSBuild

J'ai une application .net basée sur .net framework 3.5, j'essaie de construire cette application sur le serveur Jenkins CI. J'ai ajouté le plugin MSBuild et j'ai ajouté le chemin d'accès 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 .. ?? ??

32
Bijoy K Jose

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

REMARQUE: dans les versions Jenkins plus récentes, vous trouverez la configuration MSBuild dans la configuration de l'outil global:

enter image description here


Jenkins MSBuild Installation Configuration

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

Vous devrez vous référer à ce nom plus tard dans le projet Jenkins qui échoue.

Remarque: l'avertissement jaune implique que le champ Chemin d'accès à MSBuild doit être rempli avec un nom de répertoire plutôt qu'un nom de fichier. Dans la pratique, vous devez également saisir le nom de fichier ici (c.-à-d. Msbuild.exe) sinon l'étape de construction échouera.

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

Le premier champ de l'étape de génération est "MSBuild Version". Si vous avez créé l'étape de génération 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, la liste déroulante sera remplie avec 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, with named msbuild configuration selected

78
Damith
Jenkins | Manage Jenkins | Configure System

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

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

Remarque - spécifiez le chemin d'accès 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 à Jenkins - ça pourrait être par exemple:

Nom: 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
Pavel Zeman

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
6
fmgp

Vous pouvez également ajouter le chemin d'accès au fichier msbuild.exe à la variable d'environnement système PATH du nœud (ou des nœuds) qui exécute ce travail spécifique.

1
Ignacio Fernández