在TFS待办事项板中按列名称获取工作项

本文关键字:工作 获取 TFS | 更新日期: 2023-09-27 18:03:33

我的待办事项中有一个带有定制列的板。是否有办法在一个特定的列中获得所有用户故事 ?

我有两个列具有相同的状态"active",所以我不能按状态过滤,我需要按列名过滤。例如,我需要在列'A'(状态激活)中获得'用户故事',而不返回列'B'(也激活)中的'用户故事'。

Update:程序不在安装TFS的同一台计算机上运行。我需要在客户端这样做。

public class Program
{
    static void Main(string[] args)
    {
        Uri collectionUri = new Uri("http://tfs-server/tfs");
        TfsConfigurationServer configurationServer =
            TfsConfigurationServerFactory.GetConfigurationServer(collectionUri);
        ReadOnlyCollection<CatalogNode> collectionNodes = configurationServer.CatalogNode.QueryChildren(
            new[] { CatalogResourceTypes.ProjectCollection },
            false,
            CatalogQueryOptions.None);
        Guid collectionId = new Guid(collectionNodes[0].Resource.Properties["InstanceId"]);
        TfsTeamProjectCollection teamProjectCollection = configurationServer.GetTeamProjectCollection(collectionId);
        var workStore = teamProjectCollection.GetService<WorkItemStore>();
        var storiesInA = workStore.Query(
                       @" Select [State], [Title] From WorkItems
                        Where
                            [Work Item Type] = 'User Story' and
                            [State] = 'Active' and
                            [System.AreaPath] = 'MyPath'
                        Order By [State] Asc, [Changed Date] Desc");
    }
}

在TFS待办事项板中按列名称获取工作项

看板列是特定于团队的,需要通过团队特定的上下文来访问。你可以通过TFS中的WorkItemTypeExtensionService来访问它。你可以在这里找到答案:

  • 访问工作项的看板列(团队特定字段)