如何从 Team Foundation 获取工作项的用户帐户名?

How to get user AccountName for WorkItem from TeamFoundation?

我正在使用以下代码从 TFS 获取工作项:

private static List<WorkItem> GetTfsWorkItems(string projectName)
{
    Uri URI = new Uri("...", UriKind.Absolute);
    TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(URI);
    WorkItemStore store = new WorkItemStore(tpc);
    string query = $@"SELECT *
                      FROM WorkItems
                      WHERE [System.TeamProject] = '{projectName}'";
    return store.Query(query).Cast<WorkItem>().ToList();
}

WorkItem 有字段 "CreatedBy" 和 "ChangedBy",这两个字段都是带有用户 DisplayName 的字符串。 我正在寻找获取用户的 AccountName(或 Sid)而不是它的方法。提前致谢!

无法直接获取帐户名。具有 CreatedBy/ChangedBy 字段等用户名值的字段存储在 TFS 数据库中作为对身份的引用,而不仅仅是显示名称。

但是不支持按显示名称查询帐户列表。作为解决方法,您必须深入了解帐户列表并将显示名称与身份相匹配。该身份有您的 AccountName。

TeamFoundationIdentity的帮助下,您可以得到您所需要的。请查看以下教程,了解更多详情: