TeamCity说在MSBuild步骤中使用“Build Parameters”而不是“/ property:”。 那是什么意思?

我有一个TeamCity服务器设置来执行我的CI构build。 我正在构build和testing一个C#解决scheme并运行一些自定义的MSBuild任务。 其中一个任务是在我的编译输出中打印警告。

MSBuild命令行参数包含“/ property:”或“/ p:”参数。 请使用Build参数。

我不明白这是什么意思或如何删除它。 它不好Google(有或没有错字)。 我从命令行(使用/verbosity:diagnostic )运行任务,但没有出现,所以我相信这是一个TeamCity消息。

MSBuild的任务是

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

而相关的TeamCity步骤信息是

MSBuild版本:4.0
MSBuild ToolsVersion:4.0
运行平台:x64
目标:InstallDb
命令行参数:/property:DbPath=%env.DB_PATH%

您必须在configuration中的Properties and environmentvariables下添加Build Parameters

` 在这里输入图像说明

因此,在MSBUild的Build Step的命令行参数中,删除任何指定为/p:属性,并将其中的每一个添加到Build Parameters (上面的屏幕截图)中,并给出值

这一切都发生在幕后! 你只需要遵循正确的约定。 在您的MSBuild脚本中,使用常规variables表示法

 $(DbPath) 

在TeamCity中,您定义了一个系统或envvariables

 system.DbPath 

TeamCity将自动发送所有的系统/环境variables到您的MSBuild任务,删除“系统”或“环境”部分。 而且您不必在TeamCity任务中编写/property:DbPath=system.DbPath