TFS 2015. 按项目获取 CollectionName

TFS 2015. Get CollectionName by item

我有下一个情况,我正在筹码中。

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

但是我必须为这个项目创建一个直接 link。根据文档,这个 link 应该像

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

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

所以我的问题是。知道 ServerName、ProjectName、WorkItemId 和 Stored Query 名称如何获取 CollectionName?

或者。如何创建 link 到知道 ItemsId 的工作项?

P.S。 GetArtifactUrl 方法不对。

感谢帮助!

恐怕没有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);
                                }

更多方式供您参考: