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="$(DbPath)"" /> <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 environment
variables下添加Build Parameters
`
因此,在MSBUild的Build Step
的命令行参数中,删除任何指定为/p:
属性,并将其中的每一个添加到Build Parameters
(上面的屏幕截图)中,并给出值
这一切都发生在幕后! 你只需要遵循正确的约定。 在您的MSBuild脚本中,使用常规variables表示法
$(DbPath)
在TeamCity中,您定义了一个系统或envvariables
system.DbPath
TeamCity将自动发送所有的系统/环境variables到您的MSBuild任务,删除“系统”或“环境”部分。 而且您不必在TeamCity任务中编写/property:DbPath=system.DbPath
。