2
TFS의 WorkItem에 추가 된 하이퍼 링크에서 일부 호스트 이름을 업데이트해야합니다.TFS SDK를 사용하여 WorkItem의 하이퍼 링크 업데이트
내 생각은 다음과 같이이었다 :
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri("http://mytfs"));
WorkItemStore wis = tfs.GetService<WorkItemStore>();
WorkItem wi = wis.GetWorkItem(12345);
foreach (Hyperlink link in wi.Links.OfType<Hyperlink>())
{
link.Location = link.Location.Replace("oldHostname", "newHostname");
}
wi.Save();
을하지만 불행하게도이 위치 속성이 있기 때문에 읽기 전용이 작동하지 않습니다.
다른 방법으로 업데이트 할 수 있습니까?
편집 :
지금 내가 WorkItem에서의 새로운 하이퍼 링크를 이전을 제거하고 추가하기 위해 노력하고있어하지만 다음 Foreach 루프가 두 번째로 시작할 때 내가 오류가 발생합니다.TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri("http://mytfs"));
WorkItemStore wis = tfs.GetService<WorkItemStore>();
WorkItem wi = wis.GetWorkItem(14612);
foreach (Hyperlink hyperlink in wi.Links.OfType<Hyperlink>())
{
if (hyperlink.Location.Contains("oldHostname"))
{
Hyperlink newHyperlink = new Hyperlink(hyperlink.Location.Replace("oldHostname", "newHostname"));
wi.Links.Remove(hyperlink);
wi.Links.Add(newHyperlink);
}
}
if(wi.isDirty()) wi.Save();
는 foreach 문을 포함하는 라인
가 표시되고 오류는 다음과 같습니다An unhandled exception of type 'System.InvalidOperationException' occurred in Microsoft.TeamFoundation.WorkItemTracking.Client.dll
Additional information: Operation is not valid due to the current state of the object.
가 어떻게이 문제를 해결할 수 있습니까?
아 그것에 대해 잊고 위치를 업데이트하려면 새로 만들어야합니다, 고맙습니다. 하지만 이제 Location 속성이 ReadOnly임을 알 수 있습니다. 그것을 업데이트하는 또 다른 방법이 있습니까? –
귀하의 조언을 따른 후에 제기 된 질문에 문제가 추가되었습니다. –
항목을 제거한 모음을 'foreach'할 수 없습니다. 열거자는 컬렉션이 변경된이 예외를 throw합니다. – jessehouwing