首页 > 解决方案 > 在 Azure DevOps 服务器(TFS on Prem)中,有没有办法将变更集直接链接到超链接?

问题描述

我正在寻找是否可以直接将 TFS 变更集与超链接链接。

我可以创建一个工作项并在工作项中创建一个指向站点的超链接链接类型,然后将变更集与工作项相关联。但是这样做用户必须打开“相关工作项”列表,打开相关工作项,找到超链接,然后打开链接。

我正在寻找的最终结果是,在查看变更集的变更集详细信息时,会有一个“相关链接”部分或类似的部分,用户可以在其中轻松查看变更集的任何相关超链接。

谢谢,克里斯

标签: azure-devops-server

解决方案


因此,经过一些试验和许多错误后,我为我的案例提出了一个可行的解决方案。基本上通过 Visual Studio 扩展中的两个操作和一个新的自定义工作项类型来完成。

新工作项类型 - 基本上使用 Code Review 模板一个只能通过自动化创建的隐藏工作项。删除了我的案例不需要的字段。

Visual Studio 扩展第 1 部分 - 设置当用户单击 Pending Changes 窗口上的“Checkin”按钮时发生的操作。触发此操作时,扩展程序将从签入中捕获一些相关数据。然后扩展将创建新的工作项并在工作项中建立两个链接。一个链接是关联变更集和工作项。另一个是指向所需站点的超链接。

Visual Studio 扩展第 2 部分 - 为变更集详细信息视图设置操作。加载变更集详细信息视图时,获取选定的变更集 ID。这被证明是一项艰巨的任务,因为许多提供的变更集详细信息类都是私有的。获取变更集 ID 后,找到变更集的相关工作项。遍历工作项中的链接,获取工作项中的超链接。然后浏览找到的超链接,并在变更集详细信息视图中通过 WPF 在新部分中显示它们。

有助于在 Visual Studio 扩展中获取变更集 ID 的代码部分:

var dte = Package.GetGlobalService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
var dte2 = (EnvDTE80.DTE2)dte;
var vce = dte2.DTE.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt") as VersionControlExt;
VersionControlHistoryChangesetItem[] versionControlHistoryChangesetItems = vce.History.ActiveWindow.SelectedChangesets;

推荐阅读