Add submenu to existing Visual Studio extension menu

huangapple go评论48阅读模式
英文:

Add submenu to existing Visual Studio extension menu

问题

I created a Visual Studio menu extension that I deploy via a VSIX package; now I need to create a new VSIX package to add submenus to the previous one.
我创建了一个通过VSIX包部署的Visual Studio菜单扩展;现在我需要创建一个新的VSIX包,以添加子菜单到之前的扩展。

I have created a Visual Studio extension menu (A) via a VSIX project, that contains a button.
我通过VSIX项目创建了一个Visual Studio扩展菜单(A),其中包含一个按钮。

First extension result:
第一个扩展结果:

Now I'm trying to create a second VSIX project, and my goal is to create a submenu (B) that is a child of (A), by preserving all the pre-existing buttons; I need to create a sort of modular behavior, so I cannot create just a single VSIX project.
现在我正在尝试创建第二个VSIX项目,我的目标是创建一个子菜单(B),它是(A)的子菜单,并保留所有现有的按钮;我需要创建一种模块化行为,因此我不能只创建一个单独的VSIX项目。

However, when I try to install the second VSIX package, it seems that it overwrites the first extension, and I see only the second.
然而,当我尝试安装第二个VSIX包时,似乎它会覆盖第一个扩展,我只看到第二个扩展。

Second extension result:
第二个扩展结果:

My wanted goal is as shown in the following picture:
我的目标如下图所示:

I already found this other question and I tried what it suggested, but with no luck.
我已经找到了这个其他问题,并尝试了建议的方法,但没有成功。

The file *.vsct of the first project is:
第一个项目的*.vsct文件如下:

<!-- 略 -->

The file *.vsct of the second project is:
第二个项目的*.vsct文件如下:

<!-- 略 -->
英文:

I created a Visual Studio menu extension that I deploy via a VSIX package; now I need to create a new VSIX package to add submenus to the previous one.

I have created a Visual Studio extension menu (A) via a VSIX project, that contains a button.

First extension result:

Add submenu to existing Visual Studio extension menu

Now I'm trying to create a second VSIX project, and my goal is to create a submenu (B) that is child of (A), by preserving all the pre-existing buttons; I need to create a sort of modular behavior, so I cannot create just a single VSIX project.

However, when I try and install the second VSIX package, it seems that it overwrites the first extension, and I see only the second.

Second extension result:

Add submenu to existing Visual Studio extension menu

My wanted goal is as shown in the following picture:

Add submenu to existing Visual Studio extension menu

I already found this other question and I tried what it suggested, but with no luck.

The file *.vsct of the first project is

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;CommandTable ...&gt;

	&lt;Extern href=&quot;stdidcmd.h&quot; /&gt;
	&lt;Extern href=&quot;vsshlids.h&quot; /&gt;

	&lt;Commands package=&quot;guidMyTestVSPackage&quot;&gt;

		&lt;Menus&gt;
			&lt;Menu guid=&quot;guidMyTestPackageCmdSet&quot; id=&quot;TopMenu&quot; priority=&quot;0x100&quot; type=&quot;Menu&quot;&gt;
				&lt;Parent guid=&quot;guidSHLMainMenu&quot; id=&quot;IDG_VS_MM_TOOLSADDINS&quot; /&gt;
				&lt;Strings&gt;
					&lt;ButtonText&gt;MyApp&lt;/ButtonText&gt;
				&lt;/Strings&gt;
			&lt;/Menu&gt;
		&lt;/Menus&gt;

		&lt;Groups&gt;
			&lt;Group guid=&quot;guidAboutPackageCmdSet&quot; id=&quot;MyTestAboutMenuGroup&quot; priority=&quot;0x0E00&quot;&gt;
				&lt;Parent guid=&quot;guidMyTestPackageCmdSet&quot; id=&quot;TopMenu&quot; /&gt;
			&lt;/Group&gt;
		&lt;/Groups&gt;

		&lt;Buttons&gt;
			&lt;Button guid=&quot;guidAboutPackageCmdSet&quot; id=&quot;cmdidAboutCommand&quot; priority=&quot;0x0100&quot; type=&quot;Button&quot;&gt;
				&lt;Parent guid=&quot;guidAboutPackageCmdSet&quot; id=&quot;MyTestAboutMenuGroup&quot; /&gt;
				&lt;Strings&gt;
					&lt;ButtonText&gt;About&lt;/ButtonText&gt;
				&lt;/Strings&gt;
			&lt;/Button&gt;
		&lt;/Buttons&gt;

	&lt;/Commands&gt;

	&lt;Symbols&gt;
		&lt;!-- This is the package guid. --&gt;
		&lt;GuidSymbol name=&quot;guidMyTestVSPackage&quot; value=&quot;{212cdc15-f054-46cf-8db5-a4e2a75c0d1e}&quot; /&gt;

		&lt;GuidSymbol name=&quot;guidMyTestPackageCmdSet&quot; value=&quot;{2ca5942d-9e0f-48cb-9eb8-a979358ff308}&quot;&gt;
			&lt;IDSymbol name=&quot;TopMenu&quot; value=&quot;0x1022&quot; /&gt;
		&lt;/GuidSymbol&gt;

		&lt;GuidSymbol name=&quot;guidAboutPackageCmdSet&quot; value=&quot;{4b9c6cc9-e54e-4ded-84ff-161c3bde5ad7}&quot;&gt;
			&lt;IDSymbol value=&quot;4128&quot; name=&quot;MyTestAboutMenuGroup&quot; /&gt;
			&lt;IDSymbol value=&quot;256&quot; name=&quot;cmdidAboutCommand&quot; /&gt;
		&lt;/GuidSymbol&gt;

	&lt;/Symbols&gt;

&lt;/CommandTable&gt;

The file *.vsct of the second project is

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;CommandTable ...&gt;

	&lt;Extern href=&quot;stdidcmd.h&quot; /&gt;
	&lt;Extern href=&quot;vsshlids.h&quot; /&gt;

	&lt;Commands package=&quot;guidMyTestVSPackage&quot;&gt;

		&lt;Menus&gt;
			&lt;Menu guid=&quot;guidMyTestPackageCmdSet&quot; id=&quot;TopMenu&quot; priority=&quot;0x100&quot; type=&quot;Menu&quot;&gt;
				&lt;Parent guid=&quot;guidSHLMainMenu&quot; id=&quot;IDG_VS_MM_TOOLSADDINS&quot; /&gt;
				&lt;Strings&gt;
					&lt;ButtonText&gt;MyApp&lt;/ButtonText&gt;
				&lt;/Strings&gt;
			&lt;/Menu&gt;
			&lt;Menu guid=&quot;guidMyTestPackageCmdSet2&quot; id=&quot;testMenu&quot; priority=&quot;0x100&quot; type=&quot;Menu&quot;&gt;
				&lt;Parent guid=&quot;guidMyTestPackageCmdSet2&quot; id=&quot;MyAppMenuGroup&quot; /&gt;
				&lt;Strings&gt;
					&lt;ButtonText&gt;MyTest 2023&lt;/ButtonText&gt;
				&lt;/Strings&gt;
			&lt;/Menu&gt;
		&lt;/Menus&gt;

		&lt;Groups&gt;
			&lt;Group guid=&quot;guidMyTestPackageCmdSet2&quot; id=&quot;MyAppMenuGroup&quot; priority=&quot;0x0000&quot;&gt;
				&lt;Parent guid=&quot;guidMyTestPackageCmdSet&quot; id=&quot;TopMenu&quot;/&gt;
			&lt;/Group&gt;
			&lt;Group guid=&quot;guidMyTestPackageCmdSet2&quot; id=&quot;testMenuGroup&quot; priority=&quot;0x0000&quot;&gt;
				&lt;Parent guid=&quot;guidMyTestPackageCmdSet2&quot; id=&quot;testMenu&quot;/&gt;
			&lt;/Group&gt;
			&lt;Group guid=&quot;guidMyTestPackageCmdSet2&quot; id=&quot;MyTestMenuGroup&quot; priority=&quot;0x0600&quot;&gt;
				&lt;Parent guid=&quot;guidMyTestPackageCmdSet2&quot; id=&quot;testMenu&quot; /&gt;
			&lt;/Group&gt;
    &lt;/Groups&gt;

		&lt;Buttons&gt;
			&lt;Button guid=&quot;guidMyTestPackageCmdSet2&quot; id=&quot;MyTestCommandId&quot; priority=&quot;0x0100&quot; type=&quot;Button&quot;&gt;
				&lt;Parent guid=&quot;guidMyTestPackageCmdSet2&quot; id=&quot;MyTestMenuGroup&quot; /&gt;
				&lt;Strings&gt;
					&lt;ButtonText&gt;Add MyTest NuGet Package&lt;/ButtonText&gt;
				&lt;/Strings&gt;
			&lt;/Button&gt;
		&lt;/Buttons&gt;

	&lt;/Commands&gt;

	&lt;Symbols&gt;
		&lt;!-- This is the package guid. --&gt;
		&lt;GuidSymbol name=&quot;guidMyTestVSPackage&quot; value=&quot;{212cdc15-f054-46cf-8db5-a4e2a75c0d1f}&quot; /&gt;

		&lt;GuidSymbol name=&quot;guidMyTestPackageCmdSet&quot; value=&quot;{2ca5942d-9e0f-48cb-9eb8-a979358ff308}&quot;&gt;
			&lt;IDSymbol name=&quot;TopMenu&quot; value=&quot;0x1022&quot; /&gt;
		&lt;/GuidSymbol&gt;

		&lt;GuidSymbol name=&quot;guidMyTestPackageCmdSet2&quot; value=&quot;{2ca5942d-9e0f-48cb-9eb8-a979358ff309}&quot;&gt;
			&lt;IDSymbol name=&quot;testMenu&quot; value=&quot;0x1021&quot; /&gt;
			&lt;IDSymbol name=&quot;testMenuGroup&quot; value=&quot;0x1026&quot; /&gt;
			
			&lt;IDSymbol name=&quot;MyAppMenuGroup&quot; value=&quot;0x1023&quot; /&gt;
			&lt;IDSymbol name=&quot;MyTestMenuGroup&quot; value=&quot;0x1020&quot; /&gt;
			&lt;IDSymbol name=&quot;MyTestCommandId&quot; value=&quot;0x0100&quot; /&gt;
		&lt;/GuidSymbol&gt;

	&lt;/Symbols&gt;

&lt;/CommandTable&gt;

答案1

得分: 1

I managed to achieve what I wanted, I post the details, in case someone will have the same issue.

I create the first .vsct as described in the original question, where I defined the main menu MyMenu and the common menu items.

In the second .vsct I added the references to the Menu and MenuGroup and use them. I shouldn't also add MyMenu to Menus in this .csvt. Another mistake I took is to set MyMenu as parent of the new menu items, instead of its group MyMenuGroup.

For completeness sake, the first .vsct is as follows:

<?xml version="1.0" encoding="utf-8"?>
<CommandTable xmlns="..." xmlns:xs="...">
	<Extern href="stdidcmd.h"/>
	<Extern href="vsshlids.h"/>
	<Commands package="guidCommonPackage">
		<Menus>
			<Menu guid="guidCommonPackageCmdSet" id="MyMenu" priority="0x100">
				<Parent guid="guidSHLMainMenu" id="IDG_VS_MM_TOOLSADDINS"/>
				<Strings>
					<ButtonText>Common Menu</ButtonText>
				</Strings>
			</Menu>
		</Menus>
		<Groups>
			<Group guid="guidCommonPackageCmdSet" id="MyMenuGroup" priority="0x0600">
				<Parent guid="guidCommonPackageCmdSet" id="MyMenu"/>
			</Group>
		</Groups>
		<Buttons>
			<Button guid="guidCommonPackageCmdSet" id="AboutId" priority="0x0100" type="Button">
				<Parent guid="guidCommonPackageCmdSet" id="MyMenuGroup"/>
				<Icon guid="guidImages" id="bmpPic1"/>
				<Strings>
					<ButtonText>About</ButtonText>
				</Strings>
			</Button>
		</Buttons>
		<Bitmaps>
			<Bitmap guid="guidImages" href="Resources\About.png" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows, bmpPicStrikethrough"/>
		</Bitmaps>
	</Commands>
	<Symbols>
		<!-- This is the package guid. -->
		<GuidSymbol name="guidCommonPackage" value="{cd573a98-a4dc-4c94-abc9-44ff2f1d3485}"/>
		<GuidSymbol name="guidCommonPackageCmdSet" value="{a984ac26-be55-44b2-bc4e-ab1e79b6e875}">
			<IDSymbol name="MyMenu" value="0x1010"/>
			<IDSymbol name="MyMenuGroup" value="0x1020"/>
			<IDSymbol name="AboutId" value="0x0100"/>
		</GuidSymbol>
		<GuidSymbol name="guidImages" value="{9ef0bc86-5032-4135-b94e-bd4bc76112ed}">
			<IDSymbol name="bmpPic1" value="1"/>
			<IDSymbol name="bmpPic2" value="2"/>
			<IDSymbol name="bmpPicSearch" value="3"/>
			<IDSymbol name="bmpPicX" value="4"/>
			<IDSymbol name="bmpPicArrows" value="5"/>
			<IDSymbol name="bmpPicStrikethrough" value="6"/>
		</GuidSymbol>
	</Symbols>
</CommandTable>

The second .vsct is:

<?xml version="1.0" encoding="utf-8"?>
<CommandTable xmlns="..." xmlns:xs="...">
    <Extern href="stdidcmd.h"/>
    <Extern href="vsshlids.h"/>
    <Commands package="guidModule3Package">
        <Menus>
            <Menu guid="guidModule3PackageCmdSet" id="SubMenu" priority="0x1000">
                <Parent guid="guidCommonPackageCmdSet" id="MyMenuGroup"/>
                <Strings>
                    <ButtonText>Sub Menu</ButtonText>
                </Strings>
            </Menu>
        </Menus>
        <Groups>
            <Group guid="guidModule3PackageCmdSet" id="SubMenuGroup" priority="0x0600">
                <Parent guid="guidModule3PackageCmdSet" id="SubMenu"/>
            </Group>
        </Groups>
        <Buttons>
            <Button guid="guidModule3PackageCmdSet" id="Command3Id" priority="0x0100" type="Button">
                <Parent guid="guidModule3PackageCmdSet" id="SubMenuGroup"/>
                <Icon guid="guidImages" id="bmpPic1"/>
                <Strings>
                    <ButtonText>Invoke Command3</ButtonText>
                </Strings>
            </Button>
        </Buttons>
        <Bitmaps>
            <Bitmap guid="guidImages" href="Resources\Command3.png" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows, bmpPicStrikethrough"/>
        </Bitmaps>
    </Commands>
    <Symbols>
        <GuidSymbol name="guidModule3Package" value="{8e7e1e97-c2a2-4bff-bc8f-788088b4f349}"/>
        <GuidSymbol name="guidCommonPackageCmdSet" value="{a984ac26-be55-44b2-bc4e-ab1e79b6e875}">
            <IDSymbol name="MyMenu" value="0x1010"/>
            <IDSymbol name="MyMenuGroup" value="0x1020"/>
        </GuidSymbol>
        <GuidSymbol name="guidModule3PackageCmdSet" value="{614f17f3-962b-4cbd-a34d-aaf0346d5ec7}">
            <IDSymbol name="SubMenu" value="0x1110"/>
            <IDSymbol name="SubMenuGroup" value="0x1120"/>
            <IDSymbol name="Command3Id" value="0x0100"/>
        </GuidSymbol>
        <GuidSymbol name="guidImages" value="{7c725fe5-b35f-438a-a637-daeea16254a4}">
            <IDSymbol name="bmpPic1" value="1"/>
            <IDSymbol name="bmpPic2" value="2"/>
            <IDSymbol name="bmpPicSearch" value="3"/>
            <IDSymbol name="bmpPicX" value="4"/>
            <IDSymbol name="bmpPicArrows" value="5"/>
            <IDSymbol name="bmpPicStrikethrough" value="6"/>
        </GuidSymbol>
    </Symbols>
</CommandTable>

The final result, as expected:
Add submenu to existing Visual Studio extension menu

英文:

I managed to achieve what I wanted, I post the details, in case someone will have the same issue.

I create the first .vsct as described in the original question, where I defined the main menu MyMenu and the common menu items.

In the second .vsct I added the references to the Menu and MenuGroup and use them. I shouldn't also add MyMenu to Menus in this .csvt. Another mistake I took is to set MyMenu as parent of the new menu items, instead of its group MyMenuGroup.

For completeness sake, the first .vsct is as follows:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;CommandTable xmlns=&quot;...&quot; xmlns:xs=&quot;...&quot;&gt;
&lt;Extern href=&quot;stdidcmd.h&quot;/&gt;
&lt;Extern href=&quot;vsshlids.h&quot;/&gt;
&lt;Commands package=&quot;guidCommonPackage&quot;&gt;
&lt;Menus&gt;
&lt;Menu guid=&quot;guidCommonPackageCmdSet&quot; id=&quot;MyMenu&quot; priority=&quot;0x100&quot;&gt;
&lt;Parent guid=&quot;guidSHLMainMenu&quot; id=&quot;IDG_VS_MM_TOOLSADDINS&quot;/&gt;
&lt;Strings&gt;
&lt;ButtonText&gt;Common Menu&lt;/ButtonText&gt;
&lt;/Strings&gt;
&lt;/Menu&gt;
&lt;/Menus&gt;
&lt;Groups&gt;
&lt;Group guid=&quot;guidCommonPackageCmdSet&quot; id=&quot;MyMenuGroup&quot; priority=&quot;0x0600&quot;&gt;
&lt;Parent guid=&quot;guidCommonPackageCmdSet&quot; id=&quot;MyMenu&quot;/&gt;
&lt;/Group&gt;
&lt;/Groups&gt;
&lt;Buttons&gt;
&lt;Button guid=&quot;guidCommonPackageCmdSet&quot; id=&quot;AboutId&quot; priority=&quot;0x0100&quot; type=&quot;Button&quot;&gt;
&lt;Parent guid=&quot;guidCommonPackageCmdSet&quot; id=&quot;MyMenuGroup&quot;/&gt;
&lt;Icon guid=&quot;guidImages&quot; id=&quot;bmpPic1&quot;/&gt;
&lt;Strings&gt;
&lt;ButtonText&gt;About&lt;/ButtonText&gt;
&lt;/Strings&gt;
&lt;/Button&gt;
&lt;/Buttons&gt;
&lt;Bitmaps&gt;
&lt;Bitmap guid=&quot;guidImages&quot; href=&quot;Resources\About.png&quot; usedList=&quot;bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows, bmpPicStrikethrough&quot;/&gt;
&lt;/Bitmaps&gt;
&lt;/Commands&gt;
&lt;Symbols&gt;
&lt;!-- This is the package guid. --&gt;
&lt;GuidSymbol name=&quot;guidCommonPackage&quot; value=&quot;{cd573a98-a4dc-4c94-abc9-44ff2f1d3485}&quot;/&gt;
&lt;GuidSymbol name=&quot;guidCommonPackageCmdSet&quot; value=&quot;{a984ac26-be55-44b2-bc4e-ab1e79b6e875}&quot;&gt;
&lt;IDSymbol name=&quot;MyMenu&quot; value=&quot;0x1010&quot;/&gt;
&lt;IDSymbol name=&quot;MyMenuGroup&quot; value=&quot;0x1020&quot;/&gt;
&lt;IDSymbol name=&quot;AboutId&quot; value=&quot;0x0100&quot;/&gt;
&lt;/GuidSymbol&gt;
&lt;GuidSymbol name=&quot;guidImages&quot; value=&quot;{9ef0bc86-5032-4135-b94e-bd4bc76112ed}&quot;&gt;
&lt;IDSymbol name=&quot;bmpPic1&quot; value=&quot;1&quot;/&gt;
&lt;IDSymbol name=&quot;bmpPic2&quot; value=&quot;2&quot;/&gt;
&lt;IDSymbol name=&quot;bmpPicSearch&quot; value=&quot;3&quot;/&gt;
&lt;IDSymbol name=&quot;bmpPicX&quot; value=&quot;4&quot;/&gt;
&lt;IDSymbol name=&quot;bmpPicArrows&quot; value=&quot;5&quot;/&gt;
&lt;IDSymbol name=&quot;bmpPicStrikethrough&quot; value=&quot;6&quot;/&gt;
&lt;/GuidSymbol&gt;
&lt;/Symbols&gt;
&lt;/CommandTable&gt;

The second .vsct is:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;CommandTable xmlns=&quot;...&quot; xmlns:xs=&quot;...&quot;&gt;
&lt;Extern href=&quot;stdidcmd.h&quot;/&gt;
&lt;Extern href=&quot;vsshlids.h&quot;/&gt;
&lt;Commands package=&quot;guidModule3Package&quot;&gt;
&lt;Menus&gt;
&lt;Menu guid=&quot;guidModule3PackageCmdSet&quot; id=&quot;SubMenu&quot; priority=&quot;0x1000&quot;&gt;
&lt;Parent guid=&quot;guidCommonPackageCmdSet&quot; id=&quot;MyMenuGroup&quot;/&gt;
&lt;Strings&gt;
&lt;ButtonText&gt;Sub Menu&lt;/ButtonText&gt;
&lt;/Strings&gt;
&lt;/Menu&gt;
&lt;/Menus&gt;
&lt;Groups&gt;
&lt;Group guid=&quot;guidModule3PackageCmdSet&quot; id=&quot;SubMenuGroup&quot; priority=&quot;0x0600&quot;&gt;
&lt;Parent guid=&quot;guidModule3PackageCmdSet&quot; id=&quot;SubMenu&quot;/&gt;
&lt;/Group&gt;
&lt;/Groups&gt;
&lt;Buttons&gt;
&lt;Button guid=&quot;guidModule3PackageCmdSet&quot; id=&quot;Command3Id&quot; priority=&quot;0x0100&quot; type=&quot;Button&quot;&gt;
&lt;Parent guid=&quot;guidModule3PackageCmdSet&quot; id=&quot;SubMenuGroup&quot;/&gt;
&lt;Icon guid=&quot;guidImages&quot; id=&quot;bmpPic1&quot;/&gt;
&lt;Strings&gt;
&lt;ButtonText&gt;Invoke Command3&lt;/ButtonText&gt;
&lt;/Strings&gt;
&lt;/Button&gt;
&lt;/Buttons&gt;
&lt;Bitmaps&gt;
&lt;Bitmap guid=&quot;guidImages&quot; href=&quot;Resources\Command3.png&quot; usedList=&quot;bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows, bmpPicStrikethrough&quot;/&gt;
&lt;/Bitmaps&gt;
&lt;/Commands&gt;
&lt;Symbols&gt;
&lt;GuidSymbol name=&quot;guidModule3Package&quot; value=&quot;{8e7e1e97-c2a2-4bff-bc8f-788088b4f349}&quot;/&gt;
&lt;GuidSymbol name=&quot;guidCommonPackageCmdSet&quot; value=&quot;{a984ac26-be55-44b2-bc4e-ab1e79b6e875}&quot;&gt;
&lt;IDSymbol name=&quot;MyMenu&quot; value=&quot;0x1010&quot;/&gt;
&lt;IDSymbol name=&quot;MyMenuGroup&quot; value=&quot;0x1020&quot;/&gt;
&lt;/GuidSymbol&gt;
&lt;GuidSymbol name=&quot;guidModule3PackageCmdSet&quot; value=&quot;{614f17f3-962b-4cbd-a34d-aaf0346d5ec7}&quot;&gt;
&lt;IDSymbol name=&quot;SubMenu&quot; value=&quot;0x1110&quot;/&gt;
&lt;IDSymbol name=&quot;SubMenuGroup&quot; value=&quot;0x1120&quot;/&gt;
&lt;IDSymbol name=&quot;Command3Id&quot; value=&quot;0x0100&quot;/&gt;
&lt;/GuidSymbol&gt;
&lt;GuidSymbol name=&quot;guidImages&quot; value=&quot;{7c725fe5-b35f-438a-a637-daeea16254a4}&quot;&gt;
&lt;IDSymbol name=&quot;bmpPic1&quot; value=&quot;1&quot;/&gt;
&lt;IDSymbol name=&quot;bmpPic2&quot; value=&quot;2&quot;/&gt;
&lt;IDSymbol name=&quot;bmpPicSearch&quot; value=&quot;3&quot;/&gt;
&lt;IDSymbol name=&quot;bmpPicX&quot; value=&quot;4&quot;/&gt;
&lt;IDSymbol name=&quot;bmpPicArrows&quot; value=&quot;5&quot;/&gt;
&lt;IDSymbol name=&quot;bmpPicStrikethrough&quot; value=&quot;6&quot;/&gt;
&lt;/GuidSymbol&gt;
&lt;/Symbols&gt;
&lt;/CommandTable&gt;

The final result, as expected:
Add submenu to existing Visual Studio extension menu

huangapple
  • 本文由 发表于 2023年6月13日 18:17:50
  • 转载请务必保留本文链接:https://go.coder-hub.com/76463877.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定