无法从 TFS 中的某些 WorkItem 字段中检索信息

Posted

技术标签:

【中文标题】无法从 TFS 中的某些 WorkItem 字段中检索信息【英文标题】:Unable to retrieve information from some of the WorkItem Fields in TFS 【发布时间】:2015-10-21 23:57:38 【问题描述】:

所以这些天我正在尝试使用 TFS API。到目前为止一切都很好,但是突然之间.. 我想使用按 ID 搜索的方法来检索特定故事的工作项及其各自的信息,以选择正确的故事。为了不错过一些重要信息,我在查询中正在做SELECT *。我明白了这个故事,我得到了任务。但似乎很少有领域存在问题 - 即AreaPathIterationPathType。作为一个原始检查,我写下了一些控制台打印来检查什么是好的,什么不是 - 所以如果我 uncomment 之前在执行时命名的三个中的任何一个,就会抛出这个异常:A first chance exception of type 'Microsoft.TeamFoundation.WorkItemTracking.Client.FieldDefinitionNotExistException' occurred in Microsoft.TeamFoundation.WorkItemTracking.Client.dll

这是我要打印的内容:

  Console.WriteLine(target.Fields["Title"].Value);
  Console.WriteLine(target.Fields["Description"].Value);                        
  Console.WriteLine(int.Parse(target.Fields["Id"].Value.ToString()));
  Console.WriteLine(target.Fields["AreaPath"].Value); //Problem 1
  Console.WriteLine(target.Fields["IterationPath"].Value); //Problem 2
  Console.WriteLine(int.Parse(target.Fields["AreaId"].Value.ToString()));
  Console.WriteLine(int.Parse(target.Fields["IterationId"].Value.ToString()));
  Console.WriteLine(target.Fields["State"].Value);
  Console.WriteLine(target.Fields["Type"].Value.ToString()); //Problem 3

无论有没有ToString(),都没有真正改变。 有什么建议吗?

编辑:它们不为空,我在调试模式下检查过,它们都有赋值。

【问题讨论】:

【参考方案1】:

使用CoreField 或内置getter:

    Console.WriteLine(target.Fields[CoreField.Title].Value);
    Console.WriteLine(target.Fields[CoreField.AreaPath].Value);
    Console.WriteLine(target.State);
    Console.WriteLine(target.Type.Name);

【讨论】:

以上是关于无法从 TFS 中的某些 WorkItem 字段中检索信息的主要内容,如果未能解决你的问题,请参考以下文章

workitem.open() KeyNotFoundException TFS 2013

TFS WorkItem Excel 附件打开直接更新

无法在TFS 2017中创建MultiValueControl

如何通过代码获取 TFS 工作项验证错误消息?

如何在 TFS 中使用 TfsTeamProjectCollection

使用 vNext 构建后将内部版本号与 TFS 工作项相关联