【问题标题】:VSIX/VSPackage: Solution Control Explorer context menuVSIX/VSPackage:解决方案控制资源管理器上下文菜单
【发布时间】:2015-08-28 22:40:55
【问题描述】:

在创建 VSPackage 项目时,我在试图了解如何让子菜单在 VisualStudio 2013 的解决方案控制资源管理器中工作时遇到很多问题。我可以添加按钮,这很棒。但是,我想创建现有的“查找”和“高级”等子菜单:

下面的代码获取菜单列表中的两个按钮(如上图/链接所示),但它不显示子菜单。我尝试在子菜单中添加按钮,但仍然没有显示。

<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”,而只能使用按钮吗?


我知道一篇相关文章涉及向解决方案控制资源管理器添加一个按钮,但是,我无法为解决方案控制资源管理器子菜单复制此内容: Creating VSIX package for TFS Source control explorer context menu extension

我尝试过的另一个参考,但与解决方案控制资源管理器无关: Why isn't my vspackage's context menu showing

【问题讨论】:

    标签: visual-studio-2013 vsix


    【解决方案1】:

    您的&lt;Menus&gt; 代码没问题。

    创建一个组,其父 guid 和 id 与您的菜单 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 2012-08-31
      • 2011-03-02
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多