检索"轻量级代码注释"使用Team Foundation Server API

时间:2016-07-28 07:46:26

标签: c# tfs azure-devops

来自我的ASP.Net App我想使用我们的本地TFS 2015 Update 3的C#TFS客户端SDK(或者如果可能的REST API)检索特定变更集的所有代码注释。我已经已经安装了nuget包Microsoft.TeamFoundationServer.ExtendedClient。我知道如何获取变更集或特定文件 - 但我不知道如何加载评论。

Lightweight code comments

收到评论后,我还想更改(添加)注释到变更集(而不是文件)。

谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

这可以通过在TFS Client SDK中使用Microsoft.TeamFoundation.Discussion.Client来实现。以下是代码示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Discussion.Client;
using Microsoft.TeamFoundation.VersionControl.Client;

namespace LightweightCodeView
{
    class Program
    {
        static void Main(string[] args)
        {
            string projecturi = "https://xxx:8080/tfs/";
            int changesetid = xxx;
            TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(projecturi));
            VersionControlServer vcs = ttpc.GetService<VersionControlServer>();
            Changeset cset = vcs.GetChangeset(changesetid);
            TeamFoundationDiscussionService tfds = new TeamFoundationDiscussionService();
            tfds.Initialize(ttpc);
            IDiscussionManager idm = tfds.CreateDiscussionManager();
            IAsyncResult iar = idm.BeginQueryByVersion(cset.ArtifactUri, QueryStoreOptions.ServerOnly, new AsyncCallback(Callback), null);
            var threads = idm.EndQueryByVersion(iar);
            foreach (DiscussionThread dt in threads)
            {
                Console.WriteLine(dt.RootComment.Content);
                Console.WriteLine(dt.RootComment.Author.DisplayName);
                Console.ReadLine();
            }
        //Update Changeset comments
        cset.Comment = "New Comments";
        cset.Update();
        }
        static void Callback(IAsyncResult result)
        {
        }
    }
}