Visual Studio Shell 14 升级破坏了 VSPackage 中的命令捕获

Posted

技术标签:

【中文标题】Visual Studio Shell 14 升级破坏了 VSPackage 中的命令捕获【英文标题】:Visual Studio Shell 14 upgrade ruins command capturing in VSPackage 【发布时间】:2016-05-27 09:25:58 【问题描述】:

我有一个 Visual Studio Shell 2013 应用程序,我想升级到 Shell 2015,但遇到了与命令捕获相关的问题。在旧版本中,F1 命令被捕获并覆盖默认行为。 (基于How to capture Visual Studio commands in a VSPackage Plugin?)

这是 VSPackage 中与 shell 13 配合使用的代码:

  m_objDTE = (DTE)GetService(typeof(DTE));

  var F1HelpGuid = typeof(VSConstants.VSStd97CmdID).GUID.ToString("B");
  var F1HelpID = (int)VSConstants.VSStd97CmdID.F1Help;

  F1HelpEvent = m_objDTE.Events.CommandEvents[F1HelpGuid, F1HelpID];
  F1HelpEvent.BeforeExecute += CapturedF1HelpCommand;

更新后 F1 命令不会被捕获。

你知道为什么会这样吗? F1 help Id 是否改变了?

【问题讨论】:

【参考方案1】:

您是否碰巧在VS Extensibility forum 中看到我对您帖子的最新回复?

该事件从不触发的原因是帮助命令通过存根应用程序的 ApplicationCommands.vsct 被禁用。你需要注释掉

entry 以重新启用 F1 命令。然后,您应该会看到正在调用您的事件处理程序。

【讨论】:

抱歉,Ed,由于我的回复晚了,感谢研究和帮助

以上是关于Visual Studio Shell 14 升级破坏了 VSPackage 中的命令捕获的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio Shell 2015 不在解决方案资源管理器中使用自定义图标

在 Visual Studio 隔离 Shell 应用程序中包含更多数据库连接选项?

visual studio 2015怎样升级

从 Visual Studio 2008 升级到 Visual Studio 2010 速成版

将crm 4插件项目从visual studio 2005升级到visual studio 2010

Visual Studio 2015/2013安装失败:Microsoft Visual Studio 2015 Shell (Minimum) Interop Assemblies 安装时发生严重错