remote online delivery c# .net msbuild continuous-integration jenkins

c# - online - crear la aplicación.net en Jenkins usando MSBuild



jenkins remote msbuild (5)

Tengo una aplicación .NET basada en .NET Framework 3.5, estoy intentando construir esta aplicación en el servidor Jenkins CI. He agregado el complemento MSBuild y he agregado la ruta al 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 ayudarme por favor ...?


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


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 nuevas de Jenkins, usted encuentra la configuración de MSBuild en la Configuración Global de Herramientas:

Tenga en cuenta el campo "Nombre", donde he llamado a esta configuración particular v4.0.30319. Podrías llamarlo como quieras, pero idealmente el nombre se referirá de alguna manera 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 Ruta de acceso a MSBuild debe estar poblado con un nombre de directorio en lugar de un nombre de archivo. En la práctica, también debe ingresar el nombre del archivo (es decir, msbuild.exe) o el paso de compilación fallará.

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

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

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

Aquí puede ver que he seleccionado la configuración nombrada que coincide con la instalación anterior.


Podría intentar ejecutar el

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

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

Nota al margen; es muy probable que sea contraproducente tener múltiples versiones de MSBUILD en su RUTA. Concéntrese en hacer funcionar una versión y vaya desde allí.


También puede agregar la ruta donde se encuentra msbuild.exe a la variable de entorno del sistema PATH del nodo (o nodos) que ejecuta ese trabajo específico.


Jenkins | Manage Jenkins | Configure System

desplácese hacia abajo a la sección MSBuild y haga clic en instalaciones de MSBuild

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

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

No se admite la creación de aplicaciones de Windows Phone con MSBuild de 64 bits.

Entonces en Jenkins, podría ser, por ejemplo:

Nombre: Versión 3.5

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

Nombre: Versión 4.0

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