0

我有一个通过 API 创建和更改 WorkItems 的 WebApplication。我希望将“ChangedBy”字段设置为特定的字符串值。这适用于 TFS 2013。升级到 TFS 2015 后,我的值被忽略,ChangedBy 始终设置为我用于连接到 TFS 的用户身份。

这是我的代码:

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

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

4

1 回答 1

0

根据this blog,默认情况下,Changed By字段是不可编辑字段之一(由系统设置)。为了修改它,您需要在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";
于 2015-09-30T05:47:59.893 回答