我想以编程方式在我的TFS服务器中创建迭代,例如here。
我的代码工作正常,但是我创建的迭代节点的行为并不像预期的那样。
工作原理:创建迭代节点,并将它们链接到任何工作项。可以选择它们,如下图所示:
所有迭代节点显示为"迭代*"以编程方式创建。其他迭代节点(显示为" Sprint *")已经存在。
但是,以编程方式创建的迭代节点不会显示在Backlog项目视图中。
只有" Sprint *"迭代就在那里。
我缺少什么才能让我以编程方式创建的迭代节点显示在那里?
答案 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)