1

我想在解决方案资源管理器中的所有文件和文件夹的上下文菜单中添加一个菜单项。我能够使用 vsct 文件中的这个条目将我的菜单项添加到项目节点。

<Menu guid="guidERAPackageAlphaCmdSet" id="ERAInsightMenu" priority="0x0700" type="Context">
    <Parent guid="guidSHLMainMenu" id="IDG_VS_CTXT_PROJECT_ADD" />
    <Strings>
      <ButtonText>ERA Insight</ButtonText>
      <CommandName>ERA Insight</CommandName>
    </Strings>  
  </Menu>

我想在解决方案资源管理器中所有文件和文件夹的上下文菜单中获取它。我应该使用的 id 是什么?有没有什么地方可以找到Visual Studio中所有菜单的ID?

4

2 回答 2

3

我知道这很旧,但希望这对某人有所帮助。

如果您查看 vsct 文件的顶部,您应该会看到:

  <!--This header contains the command ids for the menus provided by the shell. -->
  <Extern href="vsshlids.h"/>

路径会因版本而异,但您应该能够在与以下类似的路径中找到它:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VSSDK\VisualStudioIntegration\Common\Inc

该文件包含所有常量的列表,其中一些有描述。

以下是可用于文件中原始问题的示例:

// Common Item Node context menu
#define IDM_VS_CTXT_ITEMNODE          0x0430

// Folder Node context menu
#define IDM_VS_CTXT_FOLDERNODE        0x0431
于 2015-07-14T15:43:27.047 回答
1

您可以使用本文中描述的技巧找到所有根菜单的 ID(这意味着它不显示上下文菜单的子菜单):

http://blogs.msdn.com/b/dr._ex/archive/2007/04/17/using-enablevsiplogging-to-identify-menus-and-commands-with-vs-2005-sp1.aspx

总而言之,您需要在以下位置添加一个注册表项: HKEY_CURRENT_USER/Software/Microsoft/VisualStudio/<your vs version>/General 并且 ass 的密钥DWORD类型为 named EnableVSIPLogging(您必须将其设置为1

然后在右键单击以显示上下文菜单之前,按住CTRL并且SHIFT您将看到一个包含您需要的所有 ID 的消息框

于 2013-05-30T17:56:39.757 回答