如何使用 web 服务从 TFS 服务器获取项目列表?
是否有可用于 TFS Web 服务的文档?
我也同意布赖恩琼克的观点。不要直接调用 web 服务,这确实是为内部使用而保留的。创建您自己的访问层并调用 API。
您还可以使用对象模型来访问 ICommonStructureService。我最近开始使用它,发现它更清洁。下面的代码与 bryanjonker 的示例相同:
var tfs = TeamFoundationServerFactory.GetServer(serverUri);
var projectCollection = tfs.GetService<ICommonStructureService>();
foreach (var projectInfo in projectCollection.ListProjects())
{
listBox1.Items.Add(projectInfo.Name);
}
您最好的选择是使用 TFS DLL 和该 API,位于http://msdn.microsoft.com/en-us/library/bb130146(VS.80).aspx和http://msdn.microsoft.com /en-us/library/bb130334(v=VS.80).aspx。据我了解,直接访问网络服务是不受欢迎的。
要获得项目列表,我认为有多种方法可以做到这一点。我贴出我使用的代码:使用 GetServer 方法获取项目集合,然后通过 ListProjects() 方法列出。我需要这样做,因为我还需要获取区域和迭代。这需要 Microsoft.TeamFoundation.Client 命名空间。
var tfs = TeamFoundationServerFactory.GetServer(Constants.TEAMFOUNDSERVER);
var projectCollection = (ICommonStructureService)tfs.GetService(typeof(ICommonStructureService));
foreach (var projectInfo in projectCollection.ListProjects())
{
//do stuff here
}