在创建VSPackage项目时,我在尝试了解如何使用VisualStudio 2013的Solution Control Explorer中的子菜单时遇到很多问题。我能够添加按钮,这很棒。但是,我想创建子菜单,例如现有的“查找”和“高级”:
下面的代码是获取菜单列表中的两个按钮(如上图/链接所示),但它不显示子菜单。我试图在子菜单中添加按钮,但它仍然没有显示。
<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 Control Explorer添加了一个按钮,但是,我无法将其复制到Solution Control Explorer子菜单: Creating VSIX package for TFS Source control explorer context menu extension
我试过的另一个参考,但与Solution Control Explorer无关: Why isn't my vspackage's context menu showing
答案 0 :(得分:0)
您的<Menus>
代码没问题。
创建一个组,其父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>