17

在 TFS 2010 中,我有带有链接变更集的工作项。我可以生成一个查询来报告我正在寻找的工作项。现在我想查询工作项和直接链接,其中包括链接到这些工作项的所有变更集。在查询编辑器中,我找不到任何将变更集指定为链接到项目的方法。工作项是查询的唯一可能输出吗?

4

3 回答 3

25

一个选项是使用 TFS API,如以下代码片段。

var projectCollection = new TfsTeamProjectCollection(
    new Uri("http://localhost:8080/tfs"),
    new UICredentialsProvider());
projectCollection.EnsureAuthenticated();
var workItemStore = projectCollection.GetService<WorkItemStore>();
var versionControlServer = projectCollection.GetService<VersionControlServer>();
var artifactProvider = versionControlServer.ArtifactProvider;
var project = workItemStore.Projects["Test01.MSFAgile.v5"];
var teamQueryFolder = project.QueryHierarchy["Team Queries"] as QueryFolder;
var query = teamQueryFolder["My Tasks"];
var queryDefinition = workItemStore.GetQueryDefinition(query.Id);
var variables = new Dictionary<string, string>
{
    {"project", query.Project.Name}
};
var workItemCollection = workItemStore.Query(
    queryDefinition.QueryText,
    variables);
foreach (WorkItem workItem in workItemCollection)
{
    Console.WriteLine("WI: {0}, Title: {1}", workItem.Id, workItem.Title);
    foreach (var changeset in
        workItem.Links
            .OfType<ExternalLink>()
            .Select(link => artifactProvider
                .GetChangeset(new Uri(link.LinkedArtifactUri))))
    {
        Console.WriteLine(
            "CS: {0}, Comment: {1}",
            changeset.ChangesetId,
            changeset.Comment);
    }
}
于 2011-06-09T14:12:46.230 回答
16

我刚刚参加了改进开发人员和测试人员协作的网络研讨会,在那里我提出了我的问题。alpi.com 的讲师 Ken Arneson 确认无法通过 TFS Team Explorer 中的查询编辑器报告指向变更集的链接。要访问变更集的链接,必须使用其他工具来访问“Cube”。我还有更多要学的。

于 2011-05-11T17:23:44.750 回答
10

如果您执行查询并包括外部链接计数 >0,这实际上将为您提供所有具有与之关联的变更集的工作项。

于 2013-05-22T18:55:23.757 回答