以编程方式创建的TFS迭代节点不会显示在Backlog项目视图中

时间:2018-04-25 11:45:04

标签: c# tfs azure-devops

我想以编程方式在我的TFS服务器中创建迭代,例如here

我的代码工作正常,但是我创建的迭代节点的行为并不像预期的那样。

工作原理:创建迭代节点,并将它们链接到任何工作项。可以选择它们,如下图所示:

enter image description here

所有迭代节点显示为"迭代*"以编程方式创建。其他迭代节点(显示为" Sprint *")已经存在。

但是,以编程方式创建的迭代节点不会显示在Backlog项目视图中。

enter image description here

只有" Sprint *"迭代就在那里。

我缺少什么才能让我以编程方式创建的迭代节点显示在那里?

2 个答案:

答案 0 :(得分:1)

我认为您必须在默认团队(或任何其他团队)的团队设置中添加迭代。您可以在此处找到示例:TFS 2012 API Set TeamSettings Programmatically

    // Set up default team sprint date and time
    var teamConfig = _tfs.GetService<TeamSettingsConfigurationService>();
    var css = _tfs.GetService<ICommonStructureService4>();

    string rootNodePath = string.Format("\\{0}\\Iteration\\Release 1\\Sprint 1", _selectedTeamProject.Name);
    var pathRoot = css.GetNodeFromPath(rootNodePath);

    css.SetIterationDates(pathRoot.Uri, DateTime.Now.AddDays(-5), DateTime.Now.AddDays(7));

    var configs = teamConfig.GetTeamConfigurationsForUser(new[] { _selectedTeamProject.Uri });
    var team = configs.Where(c => c.TeamName == "Demo").FirstOrDefault();

    var ts = team.TeamSettings;
    ts.BacklogIterationPath = string.Format(@"{0}\Release 1", _selectedTeamProject.Name);
    ts.IterationPaths = new string[] { string.Format(@"{0}\Release 1\Sprint 1", _selectedTeamProject.Name), string.Format(@"{0}\Release 1\Sprint 2", _selectedTeamProject.Name) };

    var tfv = new TeamFieldValue();
    tfv.IncludeChildren = true;
    tfv.Value = _selectedTeamProject.Name;
    ts.TeamFieldValues = new []{tfv};

    teamConfig.SetTeamSettings(team.TeamId, ts);

默认团队的名称:&#34; YOUR_PROJECT_NAME团队&#34;

答案 1 :(得分:1)

团队设置中选择的迭代将显示在团队的Backlogs中心。转到团队的设置,例如:

https://xxx.visualstudio.com/TeamProject/TeamProject%20Team/_admin/_work?_a=iterations

选择要在Backlog中心显示的迭代,查看下面的屏幕截图:

enter image description here