При использовании PowerShell для извлечения информации из TFS я обнаружил, что могу получить стандартные поля, но не «пользовательские» поля.Я не уверен, что пользовательский является правильным термином, но, например, если я посмотрю на Process Editor в VS2008 и отредактирую тип рабочего элемента, появятся следующие поля, такие как 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, но не повезло.Как вы получаете доступ к этим "несистемным" полям?
Спасибо
Боз
ОБНОВЛЕНИЕ:
Из ответа Кейта я могу получить нужные мне поля:
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 в WI-Id необходимо, поскольку Id неоднозначен с Field Id.Переименование свойства «Значение поля» дает имя заголовка столбца вместо «Значение».