【问题标题】:How to create a bug in TFS Programmatically如何以编程方式在 TFS 中创建错误
【发布时间】:2019-04-14 08:02:58
【问题描述】:

我正在寻找一个小代码 sn-p,它可以帮助我使用 C# VSTS2015 以编程方式在 TFS 中创建缺陷。

我的 TFS 服务器:http://tfs2.dell.com:8080/tfs/eDell/eDellPrograms/。 服务器是:http://tfs2.dell.com:8080/tfs。 收藏品是:eDell。 项目是:eDellPrograms。

工作项 = 缺陷。

【问题讨论】:

    标签: c# api tfs defects


    【解决方案1】:

    你有两个选择:

    1. TFS 肥皂 API (SDK)
    2. TFS 休息 API

    对于 TFS Soap API (SDK),您需要以下 DLL:

    Microsoft.TeamFoundation.Client;
    Microsoft.TeamFoundation.WorkItemTracking.Client;
    

    代码是:

    using System;
    using Microsoft.TeamFoundation.Client;
    using Microsoft.TeamFoundation.WorkItemTracking.Client;
    
    namespace createNewWorkItem
    {
        class Program
        {
            static int Main(string[] args)
            {
                Uri collectionUri = new Uri("http://server:8080/TFS/");
                TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(collectionUri);
                WorkItemStore workItemStore = tpc.GetService<WorkItemStore>();
                Project teamProject = workItemStore.Projects["MyProject"];
                WorkItemType workItemType = teamProject.WorkItemTypes["Defect"];
    
                WorkItem Defect = new WorkItem(workItemType);
    
                Defect.Title = "TITLE GOES HERE";
                Defect.Description = "DESCRIPTION GOES HERE";
                Defect.Fields["Issue ID"].Value = "999999";
    
    
                Defect.Save();
                return (Defect.Id);
    
            }
        }
    
    }
    

    如果您想使用 Rest API,则不需要上述 DLL。

    代码是:

    public static async void createtWorkItem()
    {
            string requestUrl = "http://TFS2015servername:8080/tfs/{collectionname}/{teamprojectname}/_apis/wit/workitems/$Defect?api-version=1.0";
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string json = serializer.Serialize(new object[]{new
            {
                op = "add",
                path = "/fields/System.Title",
                value = "New Task from TFS 2015 REST API"
            }});
    
            HttpClientHandler authtHandler = new HttpClientHandler()
            {
               // Credentials = CredentialCache.DefaultNetworkCredentials
               Credentials = new NetworkCredential("username", "password", "domainname")
            };
    
            using (HttpClient client = new HttpClient(authtHandler))
            {
                var method = new HttpMethod("PATCH");
    
                var request = new HttpRequestMessage(method, requestUrl)
                {
                    Content = new StringContent(json, Encoding.UTF8,
                        "application/json-patch+json")
                };
            HttpResponseMessage hrm = await client.SendAsync(request);
            }
    
            Console.WriteLine("Completed!");
        };
    }
    

    【讨论】:

      猜你喜欢
      • 2017-06-02
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2015-05-22
      • 2017-12-28
      • 2020-02-18
      相关资源
      最近更新 更多