78 votes

TeamCity recommande d'utiliser "Paramètres de construction" au lieu de "/ propriété:" dans une étape MSBuild. Qu'est-ce que ça veut dire?

J'ai un TeamCity configuration du serveur pour faire mon CI s'appuie. Je suis en train de construire et de tester une solution C# et de l'exécution de certaines personnalisé tâches MSBuild. L'une de ces tâches d'impression, un message d'avertissement dans mon construire de sortie...

MSBuild paramètres de ligne de commande contient "/propriété:" ou "/p:" les paramètres. Veuillez utiliser Construire des Paramètres à la place.

Je ne comprends pas ce que cela signifie ou comment l'enlever. Il n'est pas Google (avec ou sans la faute de frappe). J'ai couru à la tâche à partir de la ligne de commande (avec /verbosity:diagnostic) et il n'apparaît pas, alors je crois que c'est un TeamCity message.

La tâche MSBuild est

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

Et les TeamCity l'étape de l'information est

MSBuild version: 4.0
MSBuild ToolsVersion: 4.0
Exécution plate-forme: x64
Objectifs: InstallDb
Paramètres de ligne de commande: /propriété:DbPath=%env.DB_PATH%

58voto

manojlds Points 96599

Vous devez ajouter Build Parameters sous Properties and environment variables dans la configuration

`enter image description here

Ainsi, dans les paramètres de ligne de commande dans l' Build Step pour MSBUild, de supprimer toute propriété est spécifiée en tant que /p: et ajouter chacun de ceux à l' Build Parameters ( capture d'écran ci-dessus) et de donner les valeurs

39voto

Anthony Mastrean Points 8582

Mon commentaire à Saint Gerbille est trop long, donc je vais l'ajouter comme une "réponse" pour plus de clarté...

Tout se passe derrière les coulisses! Vous avez juste à suivre le droit des conventions. Dans votre script MSBuild, vous utilisez les variables de notation

$(DbPath)

Et TeamCity, vous devez définir un système ou d'env variable

system.DbPath

TeamCity va automatiquement envoyer l'ensemble de son système d'/variables d'environnement de votre tâche MSBuild, en supprimant le "système" ou "env". Et vous n'avez pas à écrire /property:DbPath=system.DbPath dans votre TeamCity tâche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X