【问题标题】:TFS 2015. Get CollectionName by itemTFS 2015. 按项目获取 CollectionName
【发布时间】:2016-08-02 11:34:59
【问题描述】:

我有下一个情况,我是筹码。

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

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

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

所以,在执行查询之前,我知道 ServerName、ProjectName 和工作项的 Id。但我在任何地方都找不到 ProjectName。

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

或者。如何在知道 ItemsId 的情况下创建指向工作项的链接?

附: GetArtifactUrl 方法不对。

感谢您的帮助!

【问题讨论】:

  • 当您正常使用此团队项目时,您通常在浏览以查看工作项时使用哪个 url(提示查看该 ur)?或者您是否正在尝试创建在所有团队项目集合中搜索的内容?
  • 您的问题至少可以用 3 种方式来解释。您是在本地 TFS 服务器上还是在 Visual Studio Team Services 上尝试这个?
  • 我正在使用本地 TFS 服务器
  • Rolf Huisman 我知道我的 URL,我可以从这里提取数据。但问题不在于这个。我需要从 Project + Stored 查询中提取数据

标签: tfs tfs-2015


【解决方案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);
                                }

更多方式供大家参考:

【讨论】:

  • 此解决方案需要另一个 lvl 访问权限。还有其他想法吗?
  • 也许你可以尝试通过TFS数据库找到它。
  • @Patrick:那不需要遍历多个数据库,因为一个 tpc 链接到一个数据库?
  • 是的,你是对的。一个集合,一个数据库。您可以遍历多个数据库。我在答案中建议的解决方案应该是更好的解决方案。
猜你喜欢
  • 2017-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 2016-10-03
  • 2016-05-04
  • 2018-10-02
  • 2016-08-05
相关资源
最近更新 更多