TFS 2013 全局列表构建项有额外的斜线
TFS 2013 Global List build items have extra slash
在 TFS 2013 中,构建在全局列表中的输入方式如下:
(build definition)/(version)
而之前在 TFS 2010 中它们是这样的:
(version)
这让我们很头疼,我们发现解决这个问题的唯一方法是在每次构建后手动编辑每个构建列表项。
我认为这是设计使然。作为解决方法,您可以编写一个脚本来为您更新它。例如。在 PowerShell 中:
$filePath = "$env:TEMP\gl.xml"
$collectionUrl = "http://<server name>:8080/tfs/<collection name>"
$vsPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 12.0\Common7\IDE"
& (Join-Path $vsPath -ChildPath "witadmin.exe") exportgloballist /collection:$collectionUrl /f:$filePath
$gl = [xml](Get-content $filePath)
foreach ($list in $gl.GLOBALLISTS.GLOBALLIST)
{
if($list.name.StartsWith("Builds"))
{
"Found " + $list.name
foreach($item in $list.LISTITEM)
{
if($item.value.Contains("/"))
{
$item.value = $item.value.Substring($item.value.IndexOf("/") + 1)
}
}
}
}
$gl.Save($filePath)
& (Join-Path $vsPath -ChildPath "witadmin.exe") importgloballist /collection:$collectionUrl /f:$filePath
在 TFS 2013 中,构建在全局列表中的输入方式如下:
(build definition)/(version)
而之前在 TFS 2010 中它们是这样的:
(version)
这让我们很头疼,我们发现解决这个问题的唯一方法是在每次构建后手动编辑每个构建列表项。
我认为这是设计使然。作为解决方法,您可以编写一个脚本来为您更新它。例如。在 PowerShell 中:
$filePath = "$env:TEMP\gl.xml"
$collectionUrl = "http://<server name>:8080/tfs/<collection name>"
$vsPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 12.0\Common7\IDE"
& (Join-Path $vsPath -ChildPath "witadmin.exe") exportgloballist /collection:$collectionUrl /f:$filePath
$gl = [xml](Get-content $filePath)
foreach ($list in $gl.GLOBALLISTS.GLOBALLIST)
{
if($list.name.StartsWith("Builds"))
{
"Found " + $list.name
foreach($item in $list.LISTITEM)
{
if($item.value.Contains("/"))
{
$item.value = $item.value.Substring($item.value.IndexOf("/") + 1)
}
}
}
}
$gl.Save($filePath)
& (Join-Path $vsPath -ChildPath "witadmin.exe") importgloballist /collection:$collectionUrl /f:$filePath