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

标签 c# envdte vspackage visual-studio-shell

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

这是与 shell 13 一起工作的 VSPackage 中的代码:

  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 帮助 Id 是否更改?

最佳答案

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

事件从未触发的原因是因为通过 stub 应用程序的 ApplicationCommands.vsct 禁用了帮助命令。你需要注释掉

重新启用 F1 命令的条目。然后,您应该会看到您的事件处理程序被调用。

关于c# - Visual Studio Shell 14 升级破坏了 VSPackage 中的命令捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37479779/

相关文章:

visual-studio-2013 - Visual Studio扩展未在实验实例中加载

c# - XElement 中的 XML 解析 ':'

c# - 在自己的 Visual Studio 扩展中失去窗口焦点(使用 EnvDTE)

.net - 如何在 VSIX 包卸载时执行自定义代码?

c# - 获取 ProjectItem 的命名空间

c# - 设置选择容器示例

.net - 如何以编程方式将文件添加到解决方案?

c# - 选择后的每次迭代

javascript - SQL Server 实时推送通知到 Node.JS

c# - 如何使用C#编解码 'Chinese'字符