Visual Studio Extention - “服务器资源管理器”的上下文菜单

时间:2016-09-15 09:51:50

标签: visual-studio-extensions

在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

但是,我希望我的上下文菜单显示在“服务器资源管理器”中。一个示例和文档链接将非常有用。

3 个答案:

答案 0 :(得分:5)

要查找Visual Studio菜单指南,这通常有效。 在您的注册表中,将EnableVSIPLogging DWORD设置为1,位于HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0\General

重新启动Visual Studio(和计算机?)并按住Ctrl + Shift并右键单击服务器资源管理器中的项目,它将打开一个对话窗口,其中包含以下内容:

enter image description here

你可以从那里去。

答案 1 :(得分:1)

所有VS 2015的命令,菜单,工具栏等都在几个c ++头文件(stdidcmd.h和vsshlids.h)中详细说明。

在我的安装中,它们位于&#39; C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VSSDK \ VisualStudioIntegration \ Common \ Inc&#39;。

对文件进行了简短的介绍,我认为你需要一些开始

的东西
  • IDG_SE_CONTEXT_到服务器资源管理器上下文菜单中的目标组
  • IDG_SE_TOOLBAR_​​进入工具栏
  • IDM_SE_CONTEXT_以进入上下文菜单
  • IDM_SE_TOOLBAR_​​进入工具栏菜单

答案 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>

现在唯一的问题是识别和访问选定的表和数据库,但这是另一回事。