Как отформатировать поле AssignedTo рабочего элемента TFS с помощью PowerShell

Я использую 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) я не понимаю, что это такое. Кто-нибудь может помочь?


person AnEnglishmanInNorway    schedule 17.09.2013    source источник


Ответы (1)


Свойство «AssignedTo» является scriptproperty оцениваемым во время выполнения из файла пользовательского формата Microsoft.TeamFoundation.PowerTools.PowerShell.format.ps1xml powershell.

Значение взято из:

 $_.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
person CB.    schedule 17.09.2013
comment
Только что попробовал, это работает! Но как бы я нашел это сам? Есть ли хорошая документация по объектной модели с примерами ее использования? - person AnEnglishmanInNorway; 17.09.2013
comment
Хорошая отправная точка для файла пользовательского формата powershell находится здесь: msdn.microsoft.com/en-us/library/windows/desktop/ Об объектной модели, если вы имеете в виду объекты tfs, я не могу помочь... но вы можете начать проверять любой объектный трубопровод это получить член как` $myobject | get-member -force` и посмотрите на любой тип члена и определение. Надеюсь, это поможет - person CB.; 17.09.2013