2017-12-27 14 views
0

TFS 테스트 사례 작업 항목이있는 파일을 첨부하려고합니다. 첫 번째 단계로서 TFS 첨부 파일 저장소에 첨부 파일을 만들려고합니다. 파일이 첨부 저장소에 만들어지면 AttachmentReference 개체가 생기고 해당 개체로 ID 595의 선택된 작업 항목으로 파일을 첨부하려고합니다. 그러나 CreateAttachmentAsync 함수 호출에서 프로세스가 중단됩니다. 도움을 주시면 감사하겠습니다.작업 항목에 파일 첨부 - TFS 2015

public void AttachFile(VssConnection connection) 
    { 
     //use the workItemTrackingHttpClient 
     try 
     { 
      using (WorkItemTrackingHttpClient witClient = connection.GetClient<WorkItemTrackingHttpClient>()) 
      { 
       //create a work item 
       //WorkItem wi = witClient.GetWorkItemAsync(595, expand: WorkItemExpand.All).Result; 
       string filePath = @"C:\Temp\attach-file.PNG"; 
       AttachmentReference attachRef = witClient.CreateAttachmentAsync(filePath, "simple").Result; 

       JsonPatchDocument patchDocument = new JsonPatchDocument(); 

       //add fields to your patch document 
       patchDocument.Add(
        new JsonPatchOperation() 
        { 
         Operation = Operation.Add, 
         Path = "/relations/-", 
         Value = new 
         { 
          rel = "AttachedFile", 
          url = attachRef.Url, 
          attributes = new { comment = "Adding new attachment for Test Case 2" } 
         } 
        } 
       ); 

       WorkItem result = witClient.UpdateWorkItemAsync(patchDocument, 595).Result; 
      } 
     } 
     catch (Exception ex) 
     { 
      string msg = ex.Message; 
     } 
    } 
+0

기본 업로드 유형은 이미 '단순'으로 설정되어 있습니다. 전달할 필요가 없습니다. 또한 값은 enum 속성이어야합니다. 이게 너를 매달아 줄 수 있니? – tehbeardedone

답변

0

AttachmentReference attachRef = witClient.CreateAttachmentAsync(filePath, "simple").Result에서 "단순함"을 제거해보세요. 아래 코드를 시도하십시오.

using Microsoft.TeamFoundation.WorkItemTracking.WebApi; 
using Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models; 
using Microsoft.VisualStudio.Services.Client; 
using Microsoft.VisualStudio.Services.WebApi.Patch; 
using Microsoft.VisualStudio.Services.WebApi.Patch.Json; 
using System; 

namespace UploadAttachment 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      // Full path to the binary file to upload as an attachment 
      string filePath = @"C:\Temp\attach-file.PNG"; 
      var myCredentials = new VssClientCredentials(); 
      var connection = new VssConnection(new Uri(@"http://tfsserver:8080/tfs/TeamProjectCollectionName"), myCredentials); 
      WorkItemTrackingHttpClient workItemTrackingClient = connection.GetClient<WorkItemTrackingHttpClient>(); 
      AttachmentReference attachment = workItemTrackingClient.CreateAttachmentAsync(filePath).Result; 
      JsonPatchDocument patchDocument = new JsonPatchDocument(); 
      patchDocument.Add(
       new JsonPatchOperation() 
       { 
        Operation = Operation.Add, 
        Path = "/relations/-", 
        Value = new 
        { 
         rel = "AttachedFile", 
         url = attachment.Url, 
         attributes = new { comment = "Adding new attachment for Test Case" } 
        } 
       } 
      ); 

      WorkItem result = workItemTrackingClient.UpdateWorkItemAsync(patchDocument, 595).Result; 



     } 
    } 
} 
+0

이 회신은 도움이됩니까? –

+0

코드가 "simple"인 경우에도 콘솔 응용 프로그램이면 작동합니다. 내 코드가 Windows 형식으로 작성되고 첨부 파일을 만들 때 창이 멈추는 경우 –

+0

@SwarupPanja 새 스레드를 만들어 문제가 지속되는지 확인할 수 있습니다. –