以编程方式修改FieldDefinitions

时间:2014-06-18 13:12:16

标签: c# tfs2010 tfs-sdk

我们的工作室目前需要能够以编程方式在WorkItemStore上添加/修改/删除FieldDefinitions,而不会/在搞乱WorkItemType定义之前。这可能吗?我知道我可以获取项目中的所有字段并查看它们,但是添加新项目或修改现有项目呢? (删除不重要)。

过去2天我一直在搜索谷歌,但找不到我要找的东西......

现在,这就是我从服务器读取所有字段的方式。

List<FieldDefinition> all_defs = new List<FieldDefinition>();
FieldDefinitionCollection defs = wis.FieldDefinitions;
foreach(FieldDefinition def in defs)
    all_defs.Add(def);

1 个答案:

答案 0 :(得分:0)

我能够做一个解决方法。基本上,在代码中,我能够获取服务器上的所有字段,创建我需要添加或修改的所有字段,然后将一个WIT作为XML导出到单独的字符串中。

从那里,我通过比较提取了我需要的新字段,修改了我需要修改的字段(在Xml中),将WIT的名称(在Xml中)更改为临时字段(例如:Missing_fields),然后修改WIT Xml以在Fields标签中包含新字段和修改后的字段......

然后我在刚创建的临时WIT上使用了导入WIT方法......

然后我刷新了API的连接缓存...(这确保了API可以访问新的WIT,因此我们可以删除它)

然后我使用DestroyWIT操作包来破坏服务器上的临时WIT,这实际上会破坏WIT本身,但不会破坏字段,因为那些是服务器上的独立实体,并且vo!你已经拥有了FieldDefinition导入和修改工具。

我仍然无法删除,但这不是太糟糕......