2014-09-28 3 views
2

У меня есть проект MSBuild/C#, у которого есть цель, пытающаяся получить доступ к параметру%% build.counter%, который должен быть установлен TeamCity.Доступ к параметру% build.counter% внутри проекта MSBuild, созданного TeamCity

<Target Name="TraceBuildParameters" BeforeTargets="BeforeBuild"> 
    <Message Text="Build.Counter=$(build_counter)" /> 
</Target> 

я могу получить доступ к нему в настройках проекта сборки Teamcity, но ни одна из этих работ в сценарии:

build.counter // msbuild error 
build_counter // null 
system_build_counter // null 
teamcity_system_build_counter // null 
teamcity_build_counter // null 

не можно ли этот параметр на всех, как он подвергается?

ответ

5

TeamCity отправит любые параметры system в ваш скрипт MSBuild (не configuration). Если вы явно хотите значение %build.counter%, самый простой подход должен был бы установить параметр system следующим образом:

system.BuildCounter = %build.counter%

Тогда вы должны быть в состоянии ссылаться на него, как $(BuildCounter).

В качестве альтернативы, build.number уже отправлен в MSBuild как $(build_number). В зависимости от того, настроили ли вы номер сборки на вкладке Configuration -> General Settings, это может сэкономить дополнительный параметр.

+0

Простой и элегантный. Благодаря! (У меня есть build.number как x.y.z, поэтому вы хотите использовать его и просто «z» отдельно) – abatishchev