build.net aplicación en Jenkins usando MSBuild


Tengo una aplicación.net construida en. net framework 3.5, estoy tratando de construir esta aplicación en Jenkins CI server. He añadido MSBuild plugin y y han añadido la ruta a la .archivo exe de las versiones 2.0, 3.5 y 4.0 de MSBuild. Pero mis procesos de construcción están fallando al mostrar el siguiente mensaje de error.

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  

Podría alguien por favor ayudarme..??

Author: Shrayas, 2012-04-19

5 answers

Para que el complemento de MSBuild funcione, debe configurar el complemento en la pantalla de administración de Jenkins.

NOTA: en las versiones más recientes de Jenkins encontrará la configuración de MSBuild en la Configuración Global de la herramienta:

introduzca la descripción de la imagen aquí


Jenkins MSBuild Configuración de Instalación

Tenga en cuenta el campo "Nombre", donde he llamado a esta configuración particular v4.0.30319. Puedes llamarlo como quieras, pero idealmente el nombre de alguna manera se referirá a la versión.

Tendrá que referirse a este nombre más adelante en el PROYECTO Jenkins que está fallando.

Nota: La advertencia amarilla implica que el campo Path to MSBuild debe rellenarse con un nombre de directorio en lugar de un nombre de archivo. En la práctica es necesario introducir el nombre de archivo aquí también (es decir. msbuild.exe) o el paso de compilación fallará.

En el proyecto Jenkins que está fallando, vaya al paso de compilación de MSBuild.

El primer campo en el paso de compilación es "MSBuild Version". Si creó el paso de compilación antes de configurar cualquier versión de MSBuild, el valor aquí será (predeterminado).

Jenkins MSBuild build-step, con la configuración (predeterminada) msbuild seleccionada

Después de configurar una o más versiones de MSBuild, el menú desplegable se rellenará con las configuraciones disponibles. Seleccione el que necesita.

Puede ver aquí que ahora he seleccionado la configuración nombrada que coincide con la instalación anterior.

Jenkins MSBuild build-step, con la configuración msbuild nombrada seleccionada

 73
Author: Damith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-06 14:25:21
Jenkins | Manage Jenkins | Configure System

Desplácese hacia abajo hasta la sección MSBuild y haga clic en Instalaciones MSBuild

Defina la ruta completa a msbuild.exe, en mi sistema tengo 3.5 y v4.0.30319

Nota: especifique la ruta de acceso a las herramientas de 32 bits incluso en un sistema de 64 bits, de lo contrario podría recibir un mensaje de error:

No se admite la creación de la aplicación Windows Phone con MSBuild 64 bit.

Así que en Jenkins-podría ser por ejemplo:

Nombre: Versión 3.5

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

Nombre: Versión 4.0

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

 13
Author: Pavel Zeman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-04 01:03:12

Creo que debería establecer una ruta absoluta para "msbuild.exe " en su configuración de Jenkins, por ejemplo:

C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe
 6
Author: fmgp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-19 12:26:28

También puede agregar la ruta donde se encuentra el msbuild.exe es, a la variable de entorno PATH system del nodo (o nodos) que está ejecutando ese trabajo específico.

 1
Author: Ignacio Fernández,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-21 08:38:28

Podría intentar ejecutar el

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

, que actualizará temporalmente las variables de ruta del entorno para reflejar el entorno de compilación VS2010. Ejecute esto antes de llamar a MSBUILD y ver qué sucede. Uso esto en mis propios scripts de compilación sin problemas.

Nota al margen; es muy probable que sea contraproducente tener varias versiones de MSBUILD en su CAMINO. Concéntrese en conseguir una versión de trabajo y vaya a partir de ahí.

 -2
Author: Mel Padden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-19 12:27:08