我在TFS项目中有一些迭代,我试图读取基于以下条件的开始和结束日期:
http://blogs.msdn.com/b/visualstudiouk/archive/2013/01/16/migrating-tfs2010-sprint-dates-to-tfs2012-iteration-path-based-dates.aspx
我已经手动设置了开始日期和结束日期

我有:
string WIQL = string.Format("SELECT * FROM WorkItems WHERE [System.TeamProject] = '{0}'", projectName);
WorkItemCollection wic = wit.Query(WIQL);
foreach (WorkItem wi in wic)
{
try
{
DateTime start = Convert.ToDateTime(wi.Fields["Microsoft.VSTS.Scheduling.StartDate"].Value);
Console.WriteLine("Item does have start date!" + wi.IterationId);
}
catch (Exception)
{
Console.WriteLine("Item does not have start date!" + wi.IterationId);
}
}
Console.WriteLine("Done");
}但是对于所有项都会抛出异常,这意味着永远找不到Microsoft.VSTS.Scheduling.StartDate字段。我使用的是TFS API 11和12。
有什么想法吗?
发布于 2014-08-21 04:07:29
迭代日期不存储在工作项字段中,它们对于团队项目是全局的。获取迭代日期的正确方法是使用CommonStructureService:
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri("<collection url>"));
ICommonStructureService4 css = tfs.GetService<ICommonStructureService4>();
NodeInfo ni = css.GetNodeFromPath(@"\<project name>\Iteration\<iteration name>");
Console.WriteLine("Start date: {0}", ni.StartDate);
Console.WriteLine("Emd date: {0}", ni.FinishDate);发布于 2014-08-21 01:23:53
我会仔细研究一下工作项类型。您可以下载TFS Power tools,然后将任何工作项类型导出到xml.这将允许您探索每个字段的确切类型。也许您正在寻找的“开始日期”实际上是您的TFS实例中的一个不同类型。
你问题中的代码看起来没问题。我通过在我的TFS实例中创建一个User Story并将其设置为Active来测试它。这将在您的代码中找到的故事上设置开始日期。
https://stackoverflow.com/questions/25394033
复制相似问题