Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VSTS-无法获取迭代列表_C#_Azure Devops Rest Api - Fatal编程技术网

C# VSTS-无法获取迭代列表

C# VSTS-无法获取迭代列表,c#,azure-devops-rest-api,C#,Azure Devops Rest Api,我正在尝试使用下面的RESTAPI获取我的VSTS项目迭代列表 string _personalAccessToken = "mypersonalAccessToken"; // this PAT has Project and team (read, write, and manage) and Work items (read and write) scope string _credentials = Convert.ToBase64String(Enco

我正在尝试使用下面的RESTAPI获取我的VSTS项目迭代列表

        string _personalAccessToken = "mypersonalAccessToken"; // this PAT has Project and team (read, write, and manage) and Work items (read and write) scope 
        string _credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "", _personalAccessToken)));

        using (var client = new HttpClient())
        {            
            client.BaseAddress = new Uri("https://*myUserAccount*.visualstudio.com/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _credentials);

            var response = client.GetAsync("DefaultCollection/*MyProjectName*/*MyTeamName*/_apis/work/TeamSettings/Iterations?api-version=v2.0-preview.1").Result;

            Console.WriteLine(response.Content.ReadAsStringAsync().Result);                
        }
我的REST调用正在执行,没有任何错误(返回200个代码),值为空。虽然在我的项目中,我们至少有50次迭代,但我不会用上面的代码获取这些迭代

我不确定我在哪里犯了错误。任何帮助都将不胜感激。

代码正常

参考这些步骤来检查该团队的迭代

  • 转到该团队的管理页面
  • 挑选工作
  • 检查迭代列表
  • (可选)单击选择迭代以添加迭代
  • 更新:

    如果省略团队名称,它将检索默认团队的迭代

    默认团队:转到团队项目>概述>更改默认团队的管理页面

    选择默认团队的迭代:转到团队项目>工作>迭代>的管理页面,单击默认团队的设置

    如果希望获得团队项目的所有迭代,可以使用或直接使用此代码(添加/安装包):

    var u=新Uri(“https://starain.visualstudio.com");
    VssCredentials c=新的VssCredentials(新的Microsoft.VisualStudio.Services.Common.VSSBasiccredentials(string.Empty,“[pat]”);
    var连接=新VSS连接(u,c);
    var workItemTracking=connection.GetClient();
    Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient projClient=connection.GetClientAsync().Result;
    var projects=projClient.GetProjects().Result;
    foreach(projects.Where中的var p(pro=>pro.Name==“Scrum2015”))
    {
    var iteration=workItemTracking.GetClassificationNodeAsync(项目:p.名称,结构组:Microsoft.TeamFoundation.workItemTracking.WebApi.Models.TreeStructureGroup.Iterations,深度:5)。结果;
    获取迭代(迭代);
    }
    静态无效GetIterations(Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItemClassificationNode currentIteration)
    {
    Console.WriteLine(currentIteration.Name);
    if(currentIteration.Children!=null)
    {
    foreach(currentIteration.Children中的var ci)
    {
    迭代次数(ci);
    }
    } 
    }
    
    代码正常

    参考这些步骤来检查该团队的迭代

  • 转到该团队的管理页面
  • 挑选工作
  • 检查迭代列表
  • (可选)单击选择迭代以添加迭代
  • 更新:

    如果省略团队名称,它将检索默认团队的迭代

    默认团队:转到团队项目>概述>更改默认团队的管理页面

    选择默认团队的迭代:转到团队项目>工作>迭代>的管理页面,单击默认团队的设置

    如果希望获得团队项目的所有迭代,可以使用或直接使用此代码(添加/安装包):

    var u=新Uri(“https://starain.visualstudio.com");
    VssCredentials c=新的VssCredentials(新的Microsoft.VisualStudio.Services.Common.VSSBasiccredentials(string.Empty,“[pat]”);
    var连接=新VSS连接(u,c);
    var workItemTracking=connection.GetClient();
    Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient projClient=connection.GetClientAsync().Result;
    var projects=projClient.GetProjects().Result;
    foreach(projects.Where中的var p(pro=>pro.Name==“Scrum2015”))
    {
    var iteration=workItemTracking.GetClassificationNodeAsync(项目:p.名称,结构组:Microsoft.TeamFoundation.workItemTracking.WebApi.Models.TreeStructureGroup.Iterations,深度:5)。结果;
    获取迭代(迭代);
    }
    静态无效GetIterations(Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItemClassificationNode currentIteration)
    {
    Console.WriteLine(currentIteration.Name);
    if(currentIteration.Children!=null)
    {
    foreach(currentIteration.Children中的var ci)
    {
    迭代次数(ci);
    }
    } 
    }
    
    感谢您的回复,通过以上步骤,我发现我的团队没有任何迭代列表(这可能是零结果的原因)。但我所有的迭代都是在项目级别。我试图调整REST调用,但忽略了团队名称,但没有得到预期的结果。@Mahender如果忽略了团队名称,它将检索默认团队的迭代。我更新了我的答案,您可以查看。感谢更新的详细信息,我可以获取我的项目迭代。@starianchen MSFT仅供参考,获取“根迭代”的链接已断开。我们也许可以检查一下:??谢谢你的回复,在上面的步骤中,我看到我的团队没有任何迭代列表(这可能是零结果的原因)。但我所有的迭代都是在项目级别。我试图调整REST调用,但忽略了团队名称,但没有得到预期的结果。@Mahender如果忽略了团队名称,它将检索默认团队的迭代。我更新了我的答案,您可以查看。感谢更新的详细信息,我可以获取我的项目迭代。@starianchen MSFT仅供参考,获取“根迭代”的链接已断开。我们可以改为检查这个:??
     var u = new Uri("https://starain.visualstudio.com");
     VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.VssBasicCredential(string.Empty, "[pat]"));
                var connection = new VssConnection(u, c);
                var workItemTracking = connection.GetClient<WorkItemTrackingHttpClient>();
     Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient projClient = connection.GetClientAsync<Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient>().Result;
               var projects= projClient.GetProjects().Result;
                foreach(var p in projects.Where(pro=>pro.Name=="Scrum2015"))
                {
                    var iteration = workItemTracking.GetClassificationNodeAsync(project: p.Name, structureGroup: Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.TreeStructureGroup.Iterations, depth: 5).Result;
                    GetIterations(iteration);
                }
    
    
     static void GetIterations(Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItemClassificationNode currentIteration)
            {
                Console.WriteLine(currentIteration.Name);
                if(currentIteration.Children!=null)
                {
                    foreach (var ci in currentIteration.Children)
                    {
                        GetIterations(ci);
                    }
                } 
            }