【问题标题】:TFS API Returns only first level folders C#TFS API 仅返回第一级文件夹 C#
【发布时间】:2018-09-19 00:46:43
【问题描述】:

我正在尝试实现一个 TFS API 来获取所有工作项。它建立连接没有任何麻烦。但我面临的问题是它只获取第一级文件夹。实际上,我正在寻找的 fodler 在这些文件夹中。在第四层深处的某个地方。这是我正在尝试的代码

        string collectionUri = ConfigurationManager.AppSettings["tfsPath"].ToString();//http://myserver:8080/tfs/defaultcollection
        string teamProjectName = ConfigurationManager.AppSettings["tfsProject"];//mycompany

         VssConnection connection = new VssConnection(new Uri(collectionUri), new VssCredentials());

        // Create instance of WorkItemTrackingHttpClient using VssConnection
        WorkItemTrackingHttpClient witClient = connection.GetClient<WorkItemTrackingHttpClient>();

        List<QueryHierarchyItem> queryHierarchyItems = witClient.GetQueriesAsync(teamProjectName, depth:2).Result;

        foreach(QueryHierarchyItem qh in queryHierarchyItems )
        {
            string s = qh.Name;    
        }
        // Search for 'Special Queries' folder
        QueryHierarchyItem myQueriesFolder = queryHierarchyItems.FirstOrDefault(qhi => qhi.Name.Equals("Special Queries"));

这里的 queryHierarchyItems 总是null。我尝试使用上面的 for 循环,发现它没有进入第二级文件夹。那么我该如何完成我的要求或我做错了什么

【问题讨论】:

  • 如果您为 depth 指定更高的值会发生什么?
  • 运行此代码的账号是否拥有团队项目的相关权限?
  • @Daniel Mann 实际上不是文件夹深度。它接受的最大值是2
  • @Pero P 是的,我已经获得了 TFS 的所有文件夹的权限,我什至可以创建查询。

标签: c# tfs azure-devops tfs-sdk wiql


【解决方案1】:

如果您知道查询文件夹的路径,请使用:

var folder = witClient.GetQueryAsync(teamProject, path, depth: 1).Result;

然后您可以使用以下方式访问该文件夹中的查询:

var queries = folder.Children.Where(x => !x.IsFolder.GetValueOrDefault());

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 2014-07-08
    • 2020-02-27
    相关资源
    最近更新 更多