【发布时间】: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