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

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

问题描述:

我们正在使用TFSdeployer触发构建部署来部署构建。如何使用TFS中的PowerShell获取当前构建定义名称

但坚持如何获取我们尝试并且无法成功的当前构建的构建定义。

如何使用下面的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 

} 
+0

您使用的是什么版本的TFS?您是使用XAML构建还是基于Web的构建系统? –

+0

我正在使用基于xaml的构建和ms构建与tfs部署者一起构建和部署自动化。 –

使用所提供的环境变量:

$env:BUILD_DEFINITIONNAME 

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

+0

谢谢我会试试看,并让你知道。 –

既然你表明你正在使用XAML build,环境变量会$env:TF_BUILD_BUILDDEFINITIONNAME

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

+0

谢谢我如何将它保存到变量? –

+0

@JohnZachariah你为什么要把它保存到变量?这是预定义变量,您可以直接使用它。 –