使用变量作为TeamCity属性的名称

使用变量作为TeamCity属性的名称,teamcity,Teamcity,我有以下powershell脚本: $triggerBy = "Finish Build Trigger; Aed / My Application / Service / My Application Service, build #4.1.2.41" $buildId = $triggerBy -replace 'Finish Build Trigger; ', '' -replace ', build #.*', '' -replace '( \/ )', '_' -r

我有以下powershell脚本:

$triggerBy = "Finish Build Trigger; Aed / My Application / Service / My Application Service, build #4.1.2.41"
$buildId = $triggerBy -replace 'Finish Build Trigger; ', '' -replace ', build #.*', '' -replace '( \/ )', '_' -replace ' ', ''
运行时,
$buildId
设置为
Aed\u MyApplication\u Service\u MyApplicationService

然后我想获取变量
%dep.Aed\u MyApplication\u Service\u MyApplicationService.build.number%
的值。但是我需要使用
$buildId
的值作为中间部分


有没有办法说$buildNumber=
%dep.$buildId.build.number%
和TeamCity认识到,
$buildId
应该在计算变量之前展开?

没有,很遗憾,没有办法强迫TeamCity惰性地计算构建

如果这是一个
$triggerBy
“开关/案例”类型的选择,您可以创建一个构建步骤(在构建开始时),该步骤将:

  • 测试您计算的
    $buildId
    是否为
    Aed\u MyApplication\u Service\u MyApplicationService
  • 如果是,则以下内容应允许您在下一个生成步骤中使用
    %myDepBuildNumber%
  • 否则
    什么也不做
对任何
$triggerBy
案例重复此
if
/
else

如果未设置
%dep.Aed\u MyApplication\u Service\u MyApplicationService.build.number%
时出错:设置此参数应该可以解决此问题。(例如,如果您的构建和
Aed\u MyApplication\u Service\u MyApplicationService
都属于
Aed\u MyApplication\u Service
,请在此处声明参数)

echo "##teamcity[setParameter name='myDepBuildNumber' value='%dep.Aed_MyApplication_Service_MyApplicationService.build.number%']"