我有下一个情况,我是堆栈。
我正在使用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不是正确的方法。
感谢您的帮助!
答案 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);
}
更多参考方式: