Что-то вроде этого должно работать для вас:
public void UpdateTFSValue(string tfsServerUrl, string fieldToUpdate,
string valueToUpdateTo, int workItemID)
{
// Connect to the TFS Server
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(tfsUri));
// Connect to the store of work items.
_store = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
// Grab the work item we want to update
WorkItem workItem = _store.GetWorkItem(workItemId);
// Open it up for editing. (Sometimes PartialOpen() works too and takes less time.)
workItem.Open();
// Update the field.
workItem.Fields[fieldToUpdate] = valueToUpdateTo;
// Save your changes. If there is a constraint on the field and your value does not
// meet it then this save will fail. (Throw an exception.) I leave that to you to
// deal with as you see fit.
workItem.Save();
}
Пример вызова этого будет:
UpdateTFSValue("http://tfs2010dev:8080/tfs", "Integration Build", "Build Name", 1234);
Переменная fieldToUpdate
должна быть именем поля, а не именем ссылки (т. Е. Integration Build , а не Microsoft.VSTS.Build.IntegrationBuild )
Возможно, вы могли бы избежать использования PartialOpen () , но я не уверен.
Возможно, вам потребуется добавить Microsoft.TeamFoundation.Client
в ваш проект. (А может быть Microsoft.TeamFoundation.Common
)