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 2008 升级到 Visual Studio 2010 速成版
将crm 4插件项目从visual studio 2005升级到visual studio 2010
Visual Studio 2015/2013安装失败:Microsoft Visual Studio 2015 Shell (Minimum) Interop Assemblies 安装时发生严重错