创建 Visual Studio 扩展时如何获取源代码管理历史记录窗口中的选定项目?

Posted

技术标签:

【中文标题】创建 Visual Studio 扩展时如何获取源代码管理历史记录窗口中的选定项目?【英文标题】:How to get the selected items on Source Control History window when creating a Visual Studio Extension? 【发布时间】:2018-06-12 04:07:06 【问题描述】:

我开发了一个 Visual Studio 扩展。我在源代码管理历史记录窗口的上下文菜单中附加了一个按钮(上面有“变更集详细信息”、“比较”等的菜单)

我需要从窗口中获取选定的历史记录项,但不知道该怎么做。

更新:

我正在使用团队基础服务器作为源代码控制。这是我要访问的窗口的屏幕截图。 Screenshot

我找到了一种方法来检索窗口对象的数据,但我仍然有一些问题:

package.FindToolWindow(typeof(/*I don't know the type of the window*/), 0, false);

(包是 Microsoft.VisualStudio.Shell.Package 类的实例)

源代码管理历史记录窗口(屏幕截图上的那个)是什么类型的?这是我认为的难题中缺少的部分。

请帮忙:) 谢谢。

【问题讨论】:

您使用了哪种源代码管理工具?你能分享一个关于你想要菜单/历史项目的窗口的屏幕截图吗? 我已经更新了问题:我使用了 TFS 源代码控制。 @Belian 你有没有得到这个工作?我正在尝试对 Visual Studio Git 历史(可能最终也可能是 TFS/DevOps)做类似的事情。 My question is here. 【参考方案1】:

也许这会对您的需求有所帮助: Tool Window

我不知道你的其他代码部分,但我猜你启动了一个窗口应用程序,你想在其中呈现历史列表。 此窗口应用程序需要:

private FirstToolWindow window;
private void ShowToolWindow(object sender, EventArgs e)  
 
     window = (FirstToolWindow) this.package.FindToolWindow(typeof(FirstToolWindow), 0, true); 
...

【讨论】:

谢谢你的链接,我去看看! 不,我的目标是从历史窗口中获取实际选择的历史项目。所以我想检索一些数据(更准确地说,我想要 selected history items changeset ids

以上是关于创建 Visual Studio 扩展时如何获取源代码管理历史记录窗口中的选定项目?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio - 使用从现有源创建项目向导时使用新筛选器而不是新文件夹

在Visual Studio / TFS中比较源时如何忽略空格?

如何在 Visual Studio 中组织大型项目(>300 个类)的 F# 源?

visual Studio 2017 扩展开发《菜单图标详解》

visual Studio 2017 扩展开发《向Visual Studio菜单栏新增一个菜单》

如何在 Visual Studio 2010 中使用 Crystal Reports 创建报表