TFS 2015 API忽略ChangedBy

时间:2015-09-26 18:31:43

标签: api workitem tfs2015

我有一个WebApplication,它通过API创建和更改WorkItems。我想要" ChangedBy"字段设置为特定的字符串值。这与TFS 2013相得益彰。 升级到TFS 2015后,我的值被忽略,ChangedBy始终设置为我用于连接到TFS的用户的身份。

这是我的代码:

//Set some values on the WorkItem
item.Fields["ChangedBy"].Value = "MyUserName";
item.Save();

有没有办法像TFS 2013中那样强制执行行为?

1 个答案:

答案 0 :(得分:0)

根据此blog,默认情况下,“更改者”字段是不可编辑字段之一(由系统设置)。要修改它,您需要在 BypassRule 模式下使用WorkItemStore对象。绕过规则允许您无任何限制地修改工作项字段,因此您可以更改已更改字段。

将代码定义为:

 TfsTeamProjectCollection tfctc = new TfsTeamProjectCollection(new Uri("http://servername:8080/tfs/DefaultCollection"));
        WorkItemStore workItemStore = new WorkItemStore(tfctc, WorkItemStoreFlags.BypassRules);
        WorkItem workItem = workItemStore.GetWorkItem(workitemid);
        string changedBy = (string)workItem.Fields["Changed By"].Value;
        workItem.Fields["Changed By"].Value = "User Name";