【问题标题】:How to access "Custom" or non-System TFS workitem fields using PowerShell?如何使用 PowerShell 访问“自定义”或非系统 TFS 工作项字段?
【发布时间】:2011-05-26 17:09:48
【问题描述】:

当使用 PowerShell 从 TFS 中提取信息时,我发现我可以获取标准字段,但不能获取“自定义”字段。我不确定 custom 是不是正确的术语,但是例如,如果我查看 VS2008 中的 Process Editor 并编辑 Work Item 类型,则会出现如下所列的字段,包括 Name、Type 和 RefName:

Title         String    System.Title
State         String    System.State
Rev           Integer   System.Rev
Changed By    String    System.ChangedBy

我可以使用 Get-TfsItemHistory 访问这些:

Get-TfsItemHistory "$/path" -Version "D01/12/10~" -R 
  | Select -exp WorkItems | Format-Table Title, State, Rev, ChangedBy -Auto

到目前为止一切顺利。

但是,WorkItem 类型中还有一些其他字段,我称之为“自定义”或非系统字段,例如:

Activated By  String    Microsoft.VSTS.Common.ActivatedBy
Resolved By   String    Microsoft.VSTS.Common.ResolvedBy

并且下面的命令不检索数据,只是空格。

Get-TfsItemHistory "$/path" -Version "D01/12/10~" -R 
  | Select -exp WorkItems | Format-Table ActivatedBy, ResolvedBy -Auto

我也尝试过引号中的名称,完全限定的 refname,但没有运气。您如何访问这些“非系统”字段?

谢谢

博兹

更新:

从 Keith 的回答中我可以得到我需要的字段:

Get-TfsItemHistory "$/Hermes/Main" -Version "D01/12/10~" -Recurse `
  | Select ChangeSetId, Comment -exp WorkItems `
  | Select ChangeSetId, Comment, @{n='WI-Id'; e={$_.Id}}, Title -exp Fields `
  | Where {$_.ReferenceName -eq 'Microsoft.VSTS.Common.ResolvedBy'} `
  | Format-Table ChangesetId, Comment, WI-Id, Title, @{n='Resolved By'; e={$_.Value}} -Auto

注意事项: 需要将 WorkItem 的 Id 重命名为 WI-Id,因为 Id 与 Field Id 不明确。 重命名字段值属性会给出一个列标题名称,而不是“值”。

【问题讨论】:

  • 如果这个问题没有用或不清楚,说明如何或为什么会很有帮助。谢谢
  • 看起来你被开车投反对票了。
  • 非常感谢反对票。

标签: powershell tfs


【解决方案1】:

每个工作项中都有一个 Fields 集合属性,似乎包含所有工作项字段和值。像这样访问它:

Get-TfsItemHistory . -r -vers "D12/14/2010~" | 
    Where {$_.WorkItems.count -gt 0} | Select -Expand workitems | 
    Select @{n='WIT-Id';e={$_.Id}},Title -Expand Fields | 
    Where {$_.ReferenceName -eq 'Microsoft.VSTS.Common.ActivatedBy'} | 
    Format-Table Value,WIT-Id,Title -auto

【讨论】:

  • 谢谢 Keith,我想我现在对 powershell cmdlet 的理解更好了,我用它来得到我需要的东西,我已经附加到我的原始问题中。
猜你喜欢
  • 2012-04-28
  • 2013-09-21
  • 1970-01-01
  • 2011-04-09
  • 1970-01-01
  • 2011-07-16
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多