Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TFS 2015 API忽略了由_Api_Workitem_Tfs 2015 - Fatal编程技术网

TFS 2015 API忽略了由

TFS 2015 API忽略了由,api,workitem,tfs-2015,Api,Workitem,Tfs 2015,我有一个通过API创建和更改工作项的Web应用程序。我希望将“ChangedBy”字段设置为特定的字符串值。这在2013年TFS中运行良好。 升级到TFS 2015后,我的值将被忽略,并且ChangedBy始终设置为我用于连接到TFS的用户的标识 这是我的代码: //Set some values on the WorkItem item.Fields["ChangedBy"].Value = "MyUserName"; item.Save(); 有没有办法像TFS 2013那样强制执行该行为

我有一个通过API创建和更改工作项的Web应用程序。我希望将“ChangedBy”字段设置为特定的字符串值。这在2013年TFS中运行良好。 升级到TFS 2015后,我的值将被忽略,并且ChangedBy始终设置为我用于连接到TFS的用户的标识

这是我的代码:

//Set some values on the WorkItem
item.Fields["ChangedBy"].Value = "MyUserName";
item.Save();
有没有办法像TFS 2013那样强制执行该行为?

根据这一点,默认情况下,“更改人”字段是不可编辑字段之一(由系统设置)。为了修改它,您需要在旁路规则模式下使用Workwith 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";

您是否也尝试过这样做?文档与我使用TFS 2013的经验不符。我可以把那个字段改成我想要的。它在TFS 2015中停止工作,所以可能他们修复了该错误。我不选择绕过规则,因为我想更改其他字段,并根据规则检查它们。