在VSIX项目中,在.vsct文件中,我可以看到如何定位不同的对象并提供自定义上下文菜单:
例如,以下内容将针对解决方案资源管理器中的项目节点:
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE"/>
<!--<Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>-->
</Group>
将id属性从IDM_VS_CTXT_ITEMNODE
更改为IDM_VS_CTXT_CODEWIN
会导致上下文菜单出现在代码窗口中。
这里有记录: Microsoft Documentation
但是,我希望我的上下文菜单显示在“服务器资源管理器”中。一个示例和文档链接将非常有用。
答案 0 :(得分:5)
要查找Visual Studio菜单指南,这通常有效。
在您的注册表中,将EnableVSIPLogging DWORD设置为1,位于HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0\General
。
重新启动Visual Studio(和计算机?)并按住Ctrl + Shift并右键单击服务器资源管理器中的项目,它将打开一个对话窗口,其中包含以下内容:
你可以从那里去。
答案 1 :(得分:1)
所有VS 2015的命令,菜单,工具栏等都在几个c ++头文件(stdidcmd.h和vsshlids.h)中详细说明。
在我的安装中,它们位于&#39; C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VSSDK \ VisualStudioIntegration \ Common \ Inc&#39;。
对文件进行了简短的介绍,我认为你需要一些开始
的东西答案 2 :(得分:1)
感谢Paul Swetz和James Sinclair,我能够做到这一点。
使用Paul Swetz描述的方法我可以识别我点击的服务器窗口对象所需的guid,在本例中是表节点。
有了这个,我把这个id添加到了.vsct文件中的符号,并且我选择了一个名字:
<GuidSymbol name="guidWhatever" value="{d4f02a6a-c5ae-4bf2-938d-f1625bdca0e2}"> <!--//server explorer - table-->
<IDSymbol name="IDMX_DV_OBJECT_NODE" value="0x8200"/>
</GuidSymbol>
现在我可以在群组中使用它,自定义命令会出现在下拉列表中。
<Groups>
<Group guid="guidFirstCommandPackageCmdSet" id="MyMenuGroup" priority="0x0600">
<!--<Parent guid="{D309F791-903F-11D0-9EFC-00A0C911004F}" id="IDM_VS_CTXT_ITEMNODE"/>-->
<Parent guid="guidWhatever" id="IDMX_DV_OBJECT_NODE"/>
</Group>
</Groups>
现在唯一的问题是识别和访问选定的表和数据库,但这是另一回事。