TFS 2015.按项目获取CollectionName

时间:2016-08-01 08:18:46

标签: tfs tfs2015

我有下一个情况,我是堆栈。

我正在使用Microsoft.TeamFoundation类从c#中获取存储查询的工作项。我知道服务器名称,项目名称和存储的查询名称。所以我可以执行存储的查询并接收所有WorkItems。

但是我必须创建这个项目的直接链接。根据文档,此链接应该像

http:// ServerName:8080/tfs/CollectionName/ProjectName/_workitems/edit/Id

因此,在执行查询之前,我知道ServerName,ProjectName和工作项的ID。但我无法在任何地方找到ProjectName。

所以我的问题是。如何知道ServerName,ProjectName,WorkItemId和存储的查询名称获取CollectionName?

或者。如何创建知道ItemsId的工作项链接?

P.S。 GetArtifactUrl不是正确的方法。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

害怕没有这样的API来实现这一目标。但是,作为一种变通方法,您可以通过客户端API列出所有集合的名称,如下所示:

        Uri configurationServerUri = new Uri(URL);
      TfsConfigurationServer configurationServer = TfsConfigurationServerFactory.GetConfigurationServer(configurationServerUri);
                                    ITeamProjectCollectionService tpcService = configurationServer.GetService<ITeamProjectCollectionService>();

    foreach (TeamProjectCollection tpc in tpcService.GetCollections())
                                {
                                    ListCollection.Add(tpc.Name);
                                }

更多参考方式: