我们正在根据自上次部署构建以来更改集和相关工作项的历史记录,以编程方式生成部署电子邮件。它们看起来有点像Visual中的构建摘要信息(但与许多构建合并在一起)。
数据中似乎有一些有用的URL(如vstfs:///VersionControl/Changeset/205151
),但对于TFS来说,我不知道它是否/如何映射到可查看项(例如/...)。Visual中的生成摘要链接是可点击的,但它们是VS的链接吗?
如果可能的话,我们希望在打开相关条目的电子邮件中包含链接(在浏览器中?),所以我想我需要知道TFS路径是否是可浏览的,如果是的话,怎么做呢?
欢迎提出建议。谢谢。
发布于 2011-06-24 02:31:56
下面似乎是访问工作项的标准url
发布于 2011-06-25 12:27:43
这是我一直用于访问工作项的uRl,
=> http://ServerName:PortNumber/tfs/web/wi.aspx?id=xxidxx
编辑--我指定的格式--确实适用于TFS 2010。它基本上在Web视图中生成工作项的路径。单击此按钮将打开web视图中的工作项。
作为替代,您也可以以编程的方式获得一个可导航的URL。
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("TFSURL"));
var versionControl = tfs.GetService<ICommonStructureService>();
var projects = versionControl.ListAllProjects();
var myService = tfs.GetService<TswaClientHyperlinkService>();
var myUrl = myService.GetChangesetDetailsUrl(21);
因此,"TswaClientHyperlinkService“服务是microsofts超链接服务。这将生成绝对路径、相对路径、路径和查询的url格式。
HTH,
干杯,塔伦
我讨厌弄错!哈哈哈。
编辑,因为在您的示例中,您有可用的URI,并且您已经在使用TFS,所以这两行代码将起作用。
var testManagementService = tfs.GetService<ILinking>();
var testControllers = testManagementService.GetArtifactUrl(@"vstfs:///VersionControl/Changeset/205151");
这将生成,https://ServerName:PortNumber/defaultcollection/VersionControl/Changeset.aspx?artifactMoniker=205151
HTH,
干杯,塔伦
发布于 2011-06-24 05:44:21
vstfs链接称为“工件ID”,是TFS的内部数据,预期仅供TFS客户端使用。TFS客户端将解析该数据并确定如何显示该数据。对于您提供的变更集链接,富客户端将打开一个包含变更集详细信息的对话框。web客户端会将该链接转换为URI。不同的TFS库可以使用该ID为您提供更多关于这个工件的数据。
如果您想要创建到TFS Web Access的链接,那么完全正确的方法是查询服务器上的一些信息。一旦有了TswaClientHyperlinkService,就可以查询各种服务的Web,例如查看变更集或查看工作项。在马丁·伍德沃德博客上显示了一些示例。
https://stackoverflow.com/questions/6466441
复制相似问题