Pregunta TeamCity dice usar "Parámetros de compilación" en lugar de "/ propiedad:" en un paso de MSBuild. Qué significa eso?


Tengo una configuración de servidor TeamCity para hacer mis compilaciones CI. Estoy creando y probando una solución C # y ejecutando algunas tareas personalizadas de MSBuild. Una de estas tareas es imprimir una advertencia en mi producción de compilación ...

Los parámetros de línea de comandos de MSBuild contienen los parámetros "/ propiedad:" o "/ p:". Por favor usa Build Parameteres en su lugar.

No entiendo lo que esto significa o cómo eliminarlo. No funciona bien con Google (con o sin el error tipográfico). Ejecuté la tarea desde la línea de comando (con /verbosity:diagnostic) y no aparece, así que creo que es un mensaje de TeamCity.

La tarea MSBuild es

<Target Name="InstallDb">
  <MakeDir Directories="$(DbPath)" />
  <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseDrop.sql" />
  <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseCreate.sql -v DbPath=&quot;$(DbPath)&quot;" />
  <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseProgrammability.sql" />
</Target>

Y la información relevante del paso TeamCity es

Versión MSBuild: 4.0
  MSBuild ToolsVersion: 4.0
  Plataforma de ejecución: x64
  Objetivos: InstallDb
  Parámetros de la línea de comando: /property:DbPath=%env.DB_PATH%


74
2018-06-02 18:11


origen


Respuestas:


Tienes que agregar Build Parameters debajo Properties and environment variables en la configuración

`enter image description here

Entonces en los parámetros de línea de comando en Build Step para MSBUild, elimine cualquier propiedad que se especifique como /p: y agregue cada uno de ellos al Build Parameters (captura de pantalla anterior) y dar los valores


56
2018-06-02 18:16



¡Todo sucede detrás de escena! Solo tienes que seguir las convenciones correctas. En su script MSBuild, usa la notación de variable regular

$(DbPath)

Y en TeamCity, defines un sistema o variable env

system.DbPath

TeamCity enviará automágicamente todas sus variables system / env a su tarea MSBuild, eliminando la parte 'system' o 'env'. Y no tienes que escribir /property:DbPath=system.DbPath en su tarea de TeamCity.


33
2017-08-08 19:56