3

Web サイト プロジェクト アイテムのコンテキスト メニュー エントリを追加できません。

問題を再現する方法:

  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 Web サイト プロジェクト ([ファイル] -> [新規] -> [WebSite]) を作成すると、ソリューション アイテムを除いてこれらのエントリが取得されません。

NuGet には Web サイト プロジェクト アイテムのエントリがあるため、これは可能であるに違いないと確信しています。残念ながら、NuGet ソース コードからそのコードを抽出することはできませんでした。

4

1 に答える 1

8

しばらくして解決策を見つけました:(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ファイルには何もなく、コンテキスト メニューにエントリがあるからです。

于 2012-08-23T14:54:35.910 に答える