TFS 2013 - 通过电子表格链接工作项

时间:2015-05-19 20:50:56

标签: excel tfs2013

我有一个Excel工作表,其中包含数百个TFS 2013工作项ID,用于填充A列和B列。为了便于说明,我们只说我有以下内容:

A列的第1行到第100行:填充了100个错误工作项的工作项ID

第1行 - B列的第100行填充了100个工作项的工作项ID。

我想做的是拥有一个自动化流程,例如一个脚本,它迭代我的Excel电子表格的一百行,并将列A中的工作项ID与同一行中列B中的相应工作项ID链接,例如,将A1中列出的工作项链接到B1,A2到B2,A3到B3等工作项。

我可以看到For循环达到这样的要求。

1 个答案:

答案 0 :(得分:1)

如果您将电子表格保存为.csv文件,并且有两列标题为Parent and Child,那么请使用此优秀博客文章作为灵感:

http://www.colinsalmcorner.com/post/bulk-migrate-work-item-comments-links-and-attachments

试试这个:

$tpcUrl = "http://myserver:8080/tfs/MyCollection"
$csvFile = ".\map.csv" #format: Parent, Child

[Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Common')
[Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Client')
[Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.WorkItemTracking.Client')

$tpc = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tpcUrl)
$wis = $tpc.GetService([Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore])

$list = Import-Csv $csvFile

foreach($map in $list) 
{
   $childWIT = $wis.GetWorkItem($map.Child)

   Write-Host "Creating Link from Parent:$($map.Parent) to Child:$($map.Child)" -ForegroundColor Green

   $hierarchyLink = $wis.WorkItemLinkTypes[[Microsoft.TeamFoundation.WorkItemTracking.Client.CoreLinkTypeReferenceNames]::Hierarchy]
   $link = new-object Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemLink($hierarchyLink.ReverseEnd, $map.Parent)    
   $childWIT.WorkItemLinks.Add($link)
   try 
   {
      $childWIT.Save();
      Write-Host "Link created" -ForegroundColor DarkGreen
   }
   catch 
   {
      Write-Error "Could not save work item $map.Child"
      Write-Error $_
   }
}

Write-Host
Write-Host "Linking complete"