using System;
using System.Collections.Generic;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
using Microsoft.TeamFoundation.Server;
class ChangesetsFromWorkItems
{
static void Main(string[] args)
{
if (args.Length < 2)
{
Console.Error.Write("Usage: ChangesetsFromWorkItems <server> <workitemid> [workitemid...]");
Environment.Exit(1);
}
TeamFoundationServer server = TeamFoundationServerFactory.GetServer(args[0]);
WorkItemStore wiStore = (WorkItemStore)server.GetService(typeof(WorkItemStore));
int workItemId;
for (int i = 1; i < args.Length; i++)
{
if (!int.TryParse(args[i], out workItemId))
{
Console.Error.WriteLine("ignoring unparseable argument {0}", args[i]);
continue;
}
WorkItem workItem = wiStore.GetWorkItem(workItemId);
List<string> associatedChangesets = new List<string>();
foreach (Link link in workItem.Links)
{
ExternalLink extLink = link as ExternalLink;
if (extLink != null)
{
ArtifactId artifact = LinkingUtilities.DecodeUri(extLink.LinkedArtifactUri);
if (String.Equals(artifact.ArtifactType, "Changeset", StringComparison.Ordinal))
{
associatedChangesets.Add(artifact.ToolSpecificId);
}
}
}
string changesets = String.Join(", ", associatedChangesets.ToArray());
Console.WriteLine("WorkItem {0} has associated changeset(s): {1}", workItemId, changesets);
}
}
}
本文介绍了一个C#程序,该程序通过输入服务器地址及一个或多个工作项ID,从TFS中检索与这些工作项关联的所有变更集,并将它们打印出来。此脚本适用于希望了解如何使用TFS API来获取变更集信息的开发人员。

481

被折叠的 条评论
为什么被折叠?



