Trigger a Release add the Build to GlobalList

This was never the best solution but it worked. When a build executed it would be added to the Collections Global List. Then it could be used as the source for drop downs like Found In Build and Integrated In Build.

If you are stuck in that place between TFS 2015 U1 and U2 you have the news builds but you don't have the new Release manager yet these two PowerShell Scripts might come in Handy.

There are so many environment variables you can use to get information about the build that you are a part of, the CollectionURI, SourcesDirectory and so on. You can check them all out here.

To save space I have left out error checking.

  1. Trigger a release in ReleaseManager from the 2015 vNext build

# Environment Variables


Write-Host "Project: $env:SYSTEM_TEAMPROJECT"

Write-Host "Build Def: $env:BUILD_DEFINITIONNAME"

Write-Host "Build Number: $env:BUILD_BUILDNUMBER"



$TFSUri = $TFSUri.Replace("/tfs/",":8080/tfs/")

write-host "URI - $TFSUri"


$binaryLocation = join-path (Get-ItemProperty $registrykey[0]).InstallDir "bin\ReleaseManagementBuild.exe"


# Call Release Management Build

&"$binaryLocation" release -tfs "$TFSUri" -tp "$($env:SYSTEM_TEAMPROJECT)" -bd "$($env:BUILD_DEFINITIONNAME)" -bn "$($env:BUILD_BUILDNUMBER)"



  1. Add the Build to the GlobalList

#Use Environment Variables to get Build Information

[String] $GlobalEntryValue = "$env:BUILD_DEFINITIONNAME/$env:BUILD_BUILDNUMBER"


#Some other information that you will need

[string] $GlobalListFileName = "GlobalList.xml"

[String] $GlobalListName = "Builds - MyProject"


[string] $witadmin = "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\witadmin.exe"


#Export GlobalList

$arguments = 'exportGloballist /collection:"' + $tfsServer + '" /f:"' + $GlobalListFileName + '"'

write-host $witadmin $arguments

start-process -FilePath $witadmin -Argumentlist $arguments -wait -WindowStyle Hidden



#Add the Entry to the Global List

Write-host "Add build $env:BUILD_BUILDNUMBER to $GlobalListName"

[xml]$doc = Get-Content($GlobalListFileName)

$List = $doc.GLOBALLISTS.GLOBALLIST | ? { $_.Name -eq $GlobalListName }

$build = $doc.CreateElement("LISTITEM")






#Import GlobalList

$arguments = 'importgloballist /collection:"' + $tfsServer + '" /f:"' + $GlobalListFileName + '"'

write-host $witadmin $arguments

start-process -FilePath $witadmin -Argumentlist $arguments -wait -WindowStyle Hidden