如何在TFS中使用PowerShell获取当前的构建定义名称

时间:2017-10-21 05:39:02

标签: visual-studio powershell tfs

我们正在使用TFSdeployer触发Build部署以部署构建。

但坚持如何获得我们尝试但无法成功的当前Build的Build定义。

如何使用PowerShell脚本而不是硬编码获取当前的构建定义名称。

场景:如果我从Test1 BuildQuality触发,那么第一个代码应该正常工作。如果我从Test2 BuildQuality触发,则第二个代码应该正常工作。 (如果 - 其他代码工作正常)

尝试使用$ TFSDeployerBuildDetail.DefinitionName $ Build.Name

但这似乎不起作用,感谢任何帮助。

$BuildDefinitionName =  "Test1"
$PackagePath = "C:\extra\Package_Files"
$DestPath1 ="C:\extra\Test1"
$DestPath2 ="C:\extra\Test2"
$logFile ="C:\extra\logs"
$utilPath = "C:\util\"


if ($BuildDefinitionName -eq "Test1")
{

Write-Host "Testing 1st Copy"

Add-Content -Path $logFile "Copying to Test1"
& $utilPath\robocopy $PackagePath $DestPath1 /s >> $logFile

}

elseif($BuildDefinitionName -eq "Test2")
{

Write-Host "Testing 2nd Copy"
Add-Content -Path $logFile "Copying to Test2"
& $utilPath\robocopy $PackagePath $DestPath2 /s >> $logFile

}

2 个答案:

答案 0 :(得分:1)

使用提供的环境变量:

$env:BUILD_DEFINITIONNAME

https://docs.microsoft.com/en-us/vsts/build-release/actions/scripts/powershell

答案 1 :(得分:1)

由于您表示您正在使用XAML build,因此环境变量为$env:TF_BUILD_BUILDDEFINITIONNAME

另一个答案对于较新的基于Web的构建系统是正确的。