最近利用空闲时间学习了VSPackage,于是萌发了在IDE中扩展一个模板代码生成工具的想法。以下是学习中的一些笔记。
一、扩展服务器资源管理器表右键菜单按钮
要在IDE的服务器资源管理器中扩展一个右键菜单真是一个非常蛋疼的事,不过我还是成功将想要的菜单扩展了出来,效果如下图:
虽然其中困难重重,但这篇博客"VS2013在右键菜单添加命令插件开发 "给了我极大帮助,博文中标题三:“如何获取目标菜单的guid和id值”中的介绍是解决问题的关键。根据文中方法,我取得了服务器资源管理中表右键菜单Guid:{D4F02A6A-C5AE-4BF2-938D-F1625BDCA0E2}。如下图:
有了该Guid一切将迎刃而解,当然,期间将自定义菜单放到这个Guid对应的菜单中还是碰到了不少的麻烦。但不必细说,以下为扩展右键菜单的vsct配置:
<?xml version="1.0" encoding="utf-8"?>
<CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<Extern href="stdidcmd.h"/>
<Extern href="vsshlids.h"/>
<Commands package="guidMyVSPackagePkg">
<Groups>
<!--<Group guid="guidMyVSPackageCmdSet" id="myTableRightClickMenuMasterGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
</Group>-->
<!--服务器资源管理器表右键菜单自定义组,该组独立于表右键菜单其他组并在菜单顶部显示-->
<Group guid="guidMyVSPackageCmdSet" id="myTableRightClickMenuMasterGroup" priority="250">
<!--<Parent guid="guidEditorRightClickMenuCmdSet" id="editorRightClickMenu"/>--><!--解决方案资源管理器文件右键菜单,下同-->
<!--<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITE