visual studio – Como añado un argumento de la linea de comando al compilar una solucion de C++ usando Jenkins?


Jenkins dispone de un plugin llamado MSBuild que sirve, justamente, para proporcionar una interfaz que permita compilar proyectos de Visual Studio. Lamentablemente, el plugin aún no es compatible con el modo pipeline.

No obstante, no hay que olvidar que el plugin no es más que un azucarillo que sirve para simplificar un proceso, es decir, no hace magia. Si MSBuild permite pasar parámetros a la compilación es porque tiene algun parámetro que nos permite justamente eso. Es decir, basta con revisar la interfaz de MSBuild.

Seguramente debas utilizar el parámetro -property:

-property:Parametro1=Valor1;Parametro2=Valor2;...

Con lo que tu pipeline quedaría así:

bat "MSBuild.exe -property:Parametro=Valor C:/Users/User/.jenkins/workspace/project/Source/project.sln"

En cualquier caso, no es recomendable usar rutas absolutas en jenkins, ya que si cambias el nombre del job o la configuración del agente, el directorio de trabajo cambiará y tu job fallará sin remedio.

Un job de jenkins tiene como directorio de trabajo la carpeta específica de dicho job, es decir, si estás compilando el job “project”, y el workspace del agente es C:/Users/User/.jenkins, el directorio de trabajo del job será C:/Users/User/.jenkins/workspace/project, con lo que podríamos simplificar y mejorar el script facilmente:

bat "MSBuild.exe -property:Parametro=Valor Source/project.sln"