2015-09-26 3 views
0

У меня есть приложение WebApplication, которое создает и изменяет WorkItems через API. Я хочу, чтобы в поле «ChangedBy» задано определенное значение строки. Это хорошо отразилось на TFS 2013. После обновления до TFS 2015 мое значение игнорируется, и ChangedBy всегда задает идентификатор пользователя, который я использую для подключения к TFS.API TFS 2015 игнорирует ChangedBy

Это мой код:

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

Есть ли способ обеспечить поведение, как это было в TFS 2013?

+0

Вы пытались сделать то же самое с [REST API] (https://www.visualstudio.com/integrate/api/wit/work-items#UpdateworkitemsUpdateafield)? –

ответ

0

В соответствии с этим blog по умолчанию поле «Изменено» является одним из нередактируемых полей (устанавливается системой). Чтобы изменить его, вам нужно использовать работу с объектом WorkItemStore в BypassRule. Правило обхода позволяет вам изменять поля рабочих элементов без каких-либо ограничений, поэтому вы можете изменить поле «Изменено по».

Определить код, как:

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"; 
+0

Документация не соответствует моему опыту с TFS 2013. Я смог изменить это поле на все, что захочу. Он прекратил работу в TFS 2015, поэтому, возможно, они исправили эту ошибку. – henningbenk

+0

Правила обхода не подходят для меня, потому что я хочу изменить другие поля и проверить их на соответствие правилам. – henningbenk