2

我正在使用 TFS 2012 Power Tools 和 PowerShell 来显示包含更改集的工作项,这些更改集在过去 120 天内修改了给定目录下的源文件。在 StackOverflow 的大量帮助下,我找到了工作项并像这样显示它们:

PS> $items = Get-TfsItemHistory $/Somewhere -R -All -Version "D$((Get-Date).AddDays(-120).ToString('d'))~" | select ChangesetId -ExpandProperty WorkItems | Sort-Object -Unique Id
PS> $items | format-table

这看起来相当不错,例如,这是输出的开始:

Id    State    AssignedTo    AreaPath            Title
--    -----    ----------    --------            -----
32604 Closed   Harald Han... Client\Domain\Nav   Change to new address space

但是,如果我尝试仅显示字段的子集,则无法显示 AssignedTo 字段。还行吧:

PS> $items | format-table AreaPath, State

AreaPath                  State
--------                  -----
KCS-Client\Domain\Nav     Closed

但这不是:

PS > $items | format-table AssignedTo, State

AssignedTo                State
----------                -----
                          Closed

我一定错过了一些琐碎的事情,但是(作为 PowerShell 和 TFS PowerTools 的相对新手)我不明白它是什么。有人可以帮忙吗?

4

1 回答 1

1

属性“ AssignedTo”是scriptproperty在运行时从Microsoft.TeamFoundation.PowerTools.PowerShell.format.ps1xmlpowershell 自定义格式文件评估的。

该值取自:

 $_.Fields[[Microsoft.TeamFoundation.WorkItemTracking.Client.CoreField]::AssignedTo].Value

然后我认为(我无法测试它,因为我没有 TF Server 源)你需要做:

$items | format-table @{n="AssignedTo";e={$_.Fields[[Microsoft.TeamFoundation.WorkItemTracking.Client.CoreField]::AssignedTo].Value}} , State
于 2013-09-17T08:32:41.380 回答