Получить вложения из общих шагов в TFS - PullRequest
0 голосов
/ 01 октября 2018

Как загрузить вложения в общих шагах из TFS, используя C #.Вот часть кода, которую я написал:

foreach (WorkItem item in witCollection) //witCollection is collection of shared steps.
{
     if(item.Attachments.Count > 0){          
         AttachmentCollection atcoll =((Microsoft.TeamFoundation.WorkItemTracking.Client.AttachmentCollection)(item.Attachments)) as AttachmentCollection;

        foreach (var itemat in atcoll )
        {

        }
    }

1 Ответ

0 голосов
/ 03 октября 2018

Shared Steps - это один из типов рабочих элементов, поэтому вы можете загружать вложения из WorkItemServer.

Вы можете использовать приведенный ниже пример кода C # для загрузки вложений в общих шагах: ( Загрузка вложений в D:\temp\vsts в этом примере )

using System;
using Microsoft.VisualStudio.Services.Client;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Proxy;
using System.IO;

namespace RetrieveAttachments
{
    class Program
    {
        static void Main(string[] args)
        {
            var u = new Uri("http://172.17.16.163:8080/tfs/DefaultCollection");
            var c = new VssClientCredentials();
            int SharedStepsID = 748;
            TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(u, c);
            tpc.EnsureAuthenticated();
            WorkItemStore wistore = tpc.GetService<WorkItemStore>();
            WorkItem wi = wistore.GetWorkItem(SharedStepsID);
            WorkItemServer wiserver = tpc.GetService<WorkItemServer>();
            int atc = wi.Attachments.Count;

                for (int i = 0; i < atc; i++)
                {
                    string tmppath = wiserver.DownloadFile(wi.Attachments[i].Id);
                    string filename = string.Format("D:\\temp\\vsts\\{0}-{1}", wi.Fields["ID"].Value, wi.Attachments[i].Name);
                    File.Copy(tmppath, filename);
                    Console.WriteLine(string.Format("{0}\n", filename));
               }      
            Console.ReadLine();
        }
    }
}
...