如何在网站项目中添加上下文菜单条目?

时间:2012-08-23 09:18:33

标签: visual-studio-2010 vsx vsix

我无法为网站项目项添加上下文菜单条目。

如何重现问题:

  1. 创建VS包项目
  2. 转到vsct文件并将groups部分替换为:

    <Group guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0600">
       <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
    </Group>
    
    <Group guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0600">
       <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>
    </Group>
    
    <Group guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0600">
       <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE"/>
    </Group>
    
    <Group guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0600">
       <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_FOLDERNODE"/>
    </Group>
    
    <Group guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0600">
       <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_SOLNNODE"/>
    </Group>
    
  3. 调试包并查看:这将在一个简单的C#项目中为解决方案,项目和项目项添加一个条目。但是当我创建一个ASP.NET网站项目(File-&gt; New-&gt; WebSite)时,除了解决方案项目之外我不会得到这些条目。
  4. 我确信这一定是可能的,因为NuGet有一个网站项目项的条目。遗憾的是,我无法从NuGet源代码中提取该段代码。

1 个答案:

答案 0 :(得分:6)

过了一会儿我发现了一个解决方案:(我不小心查看了StyleCop源代码:P)

<Group guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0050">
  <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_WEBFOLDER"/>
</Group>

<Group guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0050">
  <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_WEBITEMNODE"/>
</Group>

<Group guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0050">
  <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_WEBPROJECT"/>
</Group>

MSDN未记录这些内容。

无论如何,我很好奇NuGet是如何做到这一点的,因为它们在vsct文件中没有任何内容,只是在上下文菜单中有一个条目。