2015-08-28 3 views
0

У меня возникло много проблем, пытаясь понять, как создать подменю, работающую в Visual Studio Studio Solution Solution Explorer при создании проекта VSPackage. Я могу добавить кнопки, и это здорово. Тем не менее, я хочу создать подменю, такие как существующий «Поиск» и «Дополнительно»: Example ImageVSIX/VSPackage: контекстное меню диспетчера решений управления

ниже код получает две кнопки в списке меню (как показано на изображении/ссылка выше), но он не отображает подменю. Я попытался добавить кнопки в подменю, но он все равно не отображается.

<Commands package="guidFirstPackagePkg"> 
    <Menus> 
     <Menu guid="guidVSPackage3CmdSet" id="SubMenu" priority="0x0100" type="Menu"> 
      <Parent guid="guidSourceControlExplorerMenuGroup" id="SourceControlExplorerMenuGroupId"/> 
      <Strings> 
       <ButtonText>Sub Menu</ButtonText> 
       <CommandName>Sub Menu</CommandName> 
      </Strings> 
     </Menu> 
    </Menus> 

    <!--Buttons section. --> 
    <Buttons> 
     <Button guid="guidVSPackage2CmdSet" id="cmdIdImport" priority="0x0100" type="Button"> 
     <Parent guid="guidSourceControlExplorerMenuGroup" id="SourceControlExplorerMenuGroupId" /> 
     <Strings> 
      <ButtonText>Import</ButtonText> 
     </Strings> 
     </Button> 
     <Button guid="guidVSPackage2CmdSet" id="cmdIdExport" priority="0x0100" type="Button"> 
     <Parent guid="guidSourceControlExplorerMenuGroup" id="SourceControlExplorerMenuGroupId" /> 
     <Strings> 
      <ButtonText>Export</ButtonText> 
     </Strings> 
     </Button> 
    </Buttons> 
</Commands> 

<Symbols> 
    <!-- This is the package guid. --> 
    <GuidSymbol name="guidFirstPackagePkg" value="{fd27b3da-39c0-486a-9900-652cb81b0744}" /> 

    <GuidSymbol name="guidSourceControlExplorerMenuGroup" value="{ffe1131c-8ea1-4d05-9728-34ad4611bda9}"> 
     <IDSymbol name="SourceControlExplorerMenuGroupId" value="0x1111" /> 
    </GuidSymbol> 

    <GuidSymbol name="guidVSPackage2CmdSet" value="{1d975044-0a78-4e91-a6c2-2e841f4280e4}"> 
     <IDSymbol name="cmdIdImport" value="0x0100" /> 
     <IDSymbol name="cmdIdExport" value="0x0110" /> 
    </GuidSymbol> 

    <GuidSymbol name="guidVSPackage3CmdSet" value="{C860DEF0-0A00-44BE-A8D9-393BACE1A44A}"> 
     <IDSymbol name="SubMenu" value="0x1001"/> 
    </GuidSymbol> 
</Symbols> 

Любые идеи о том, что я делаю неправильно? Неправильное связывание, не могу ли я использовать тот же «SourceControlExplorerMenuGroupId» для меню, но только кнопки?


Я знаю, связанный пост дело с добавлением кнопки в Solution Explorer, Control, однако, я не смог воспроизвести это для подменю Solution Control Explorer: Creating VSIX package for TFS Source control explorer context menu extension

Другой эталонным я попытался , но не имеет отношения к Контролерам решений: Why isn't my vspackage's context menu showing

ответ

0

Ваш код <Menus> в порядке.

Создайте группу с его родителем справ и идентификатор соответствия вашего GUID меню и ID:

<Groups> 
    <Group guid="guidVSPackage3CmdSet" id="MyMenuGroup" priority="0x0600"> 
     <Parent guid="guidVSPackage3CmdSet" id="SubMenu" /> 
    </Group> 
</Groups> 

Тогда просто ваши кнопки будут дети группы:

<Buttons> 
     <Button guid="guidVSPackage2CmdSet" id="cmdIdImport" priority="0x0100" type="Button"> 
     <Parent guid="guidVSPackage3CmdSet" id="MyMenuGroup" /> 
     <Strings> 
      <ButtonText>Import</ButtonText> 
     </Strings> 
     </Button> 
     <Button guid="guidVSPackage2CmdSet" id="cmdIdExport" priority="0x0100" type="Button"> 
     <Parent guid="guidVSPackage3CmdSet" id="MyMenuGroup" /> 
     <Strings> 
      <ButtonText>Export</ButtonText> 
     </Strings> 
     </Button> 
    </Buttons> 
Смежные вопросы