VSIX 插件右键菜单
Posted mirrortom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VSIX 插件右键菜单相关的知识,希望对你有一定的参考价值。
vs2017 插件开发
环境
WIN10 VS2017 CMMT
目标
文件发布,实现右击一个文件,复制到指定目录中.
建立VSIX项目,添加自定义命令项
.vsct
VSIX项目建好后,会有这个XML文件,记录自定义命令的相关属性,例如命令名字,图标,摆放位置
关键节点:
0.项目相关符号定义节
<GuidSymbol name="guidPublishFilePackage" value="{936ecd2c-2941-43e8-afff-71bd15417822}" />
项目建立后,有一个和项目名对应的CS文件,其中常量PackageGuidString值与此节的value值对应
1.符号定义节
<GuidSymbol name="guidPublishFilePackageCmdSetFILE" value="{14c506cb-99dc-4922-addf-3cefe8fbbc64}">
<IDSymbol name="MyMenuGroupFile" value="0x0100" />
<IDSymbol name="PublishFileId" value="0x0101" />
</GuidSymbol>
一个GuidSymbol节,会对应一个命令类.(每添加一个自定义命令时,就会增加一个命令类,并且此处会增加节点)
GuidSymbol节定义命令guid属性,name定义guid属性名,value定义其值,该值对应命令类的成员-常量值CommandSet
IDSymbol用于定义命令的id属性.有两个,一个用于命令,一个用于命令所在的命令组
Id属性名(name)和值(value).会用于Group Button KeyBinding节点的对应属性
其中,用于Button节点的value值,一定要对应命令类的成员-常量值CommandId,否则点击命令时无效
2.命令组节
<Groups>
<Group guid="guidPublishFilePackageCmdSetFILE" id="MyMenuGroupFile" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" />
</Group>
<Groups>
Group节表示一个命令组,它的guid属性值,就是来源于符号节 GuidSymbol 的name的值,id属性值来源于符号节IDSymbol第1个 的name的值. 如果有多个命令组,会有多个group节
其中节点Parent的id属性的值,表示该命令组所在的位置.也就是在VS中菜单位置.
Parent 命令ID 位置说明
3.命令节
<Button guid="guidPublishFilePackageCmdSetFILE" id="PublishFileId" priority="0x0100" type="Button">
<Parent guid="guidPublishFilePackageCmdSetFILE" id="MyMenuGroupFile" />
<Strings>
<ButtonText>发布文件</ButtonText>
</Strings>
</Button>
4.快捷键节
<KeyBindings>
<KeyBinding guid="guidPublishFilePackageCmdSetFILE" id="PublishFileId" mod1="CONTROL" mod2="CONTROL" key1="1" key2="1" editor="guidVSStd97" />
</KeyBindings>
以上是关于VSIX 插件右键菜单的主要内容,如果未能解决你的问题,请参考以下文章
chrome安装crxMouse鼠标右键手势插件后导致需要双击两次才能打开右键菜单