J'ai une configuration de serveur TeamCity pour faire mes builds CI. Je crée et teste une solution C # et j'exécute certaines tâches MSBuild personnalisées. L'une de ces tâches consiste à imprimer un avertissement dans ma sortie de génération ...
Les paramètres de ligne de commande MSBuild contiennent les paramètres "/ propriété:" ou "/ p:". Veuillez plutôt utiliser Build Parameteres.
Je ne comprends pas ce que cela signifie ni comment le supprimer. Cela ne fonctionne pas bien sur Google (avec ou sans faute de frappe). J'ai exécuté la tâche à partir de la ligne de commande (avec /verbosity:diagnostic
) et il n'apparaît pas, donc je crois que c'est un message TeamCity.
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="$(DbPath)"" />
<Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseProgrammability.sql" />
</Target>
Et les informations pertinentes sur l'étape TeamCity sont
Version MSBuild: 4.0
MSBuild ToolsVersion: 4.0
Exécuter la plate-forme: x64
Cibles: InstallDb
Paramètres de ligne de commande: /property:DbPath=%env.DB_PATH%
Vous devez ajouter Build Parameters
sous Properties and environment
variables dans la configuration
"
Ainsi, dans les paramètres de ligne de commande dans le Build Step
pour MSBUild, supprimez toute propriété spécifiée comme /p:
et ajoutez chacun de ceux-ci au Build Parameters
(capture d'écran ci-dessus) et donnez les valeurs
Tout se passe dans les coulisses! Il vous suffit de suivre les bonnes conventions. Dans votre script MSBuild, vous utilisez la notation de variable régulière
$(DbPath)
Et dans TeamCity, vous définissez une variable système ou env
system.DbPath
TeamCity enverra automatiquement toutes ses variables système/env à votre tâche MSBuild, en supprimant la partie "système" ou "env". Et vous n'avez pas besoin d'écrire /property:DbPath=system.DbPath
dans votre tâche TeamCity.