创建 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 扩展开发《菜单图标详解》