在TFS 2010中,我有工作项和链接的变更集。我可以生成一个报告,报告我正在寻找的工作项。现在,我想查询工作项和直接链接,其中包含链接到这些工作项的所有更改集。在查询编辑器中,我找不到任何方法来指定变更集作为链接项。 工作项是查询中唯一可能的输出吗?
答案 0 :(得分: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);
}
}
答案 1 :(得分:14)
我刚参加了网络研讨会改善开发人员和测试人员协作,在那里我提出了我的问题。 alpi.com的讲师Ken Arneson证实,通过TFS团队资源管理器中的查询编辑器无法报告更改集的链接。要访问更改集的链接,必须使用其他工具来访问“多维数据集”。我还有更多需要学习的东西。
答案 2 :(得分:9)
如果您执行查询并包含外部链接计数&gt; 0,这实际上会为您提供与其关联的变更集的所有工作项。