我已经创建了一个包,我想在Code Window上下文菜单中添加一个菜单.
经过一番搜索后,我找到了几篇解释如何做的文章.问题是,我无法让它工作....
以下是我在vsct文件中的声明:
<Button guid="guidDALGeneratorPkgCmdSet" id="cmdidDataFlow" priority="0x0100" type="Button">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>
<CommandFlag>DynamicVisibility</CommandFlag>
<Strings>
<CommandName>cmdidDataFlow</CommandName>
<ButtonText>Show data flow</ButtonText>
</Strings>
</Button>
Run Code Online (Sandbox Code Playgroud)
和符号:
<GuidSymbol name="guidDALGeneratorPkgCmdSet" value="{d3269a87-a721-49a5-800b-0464fbdfd313}">
<IDSymbol name="MyMenuGroup" value="0x1020" />
<IDSymbol name="cmdidDALGenerator" value="0x0101" />
<IDSymbol name="cmdidDataFlow" value="0x0102" />
</GuidSymbol>
Run Code Online (Sandbox Code Playgroud)
以下是我在Package课堂上添加菜单的方法:
CommandID dataFlowCID = new CommandID(GuidList.guidDALGeneratorPkgCmdSet, (int)PkgCmdIDList.cmdidDataFlow);
OleMenuCommand dataFlowMenu = new OleMenuCommand(showDataFlow, dataFlowCID);
dataFlowMenu.BeforeQueryStatus += new EventHandler(dataFlowMenu_BeforeQueryStatus);
mcs.AddCommand(dataFlowMenu);
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?我必须错过一些东西,因为几乎每个样本(以及关于这个主题的SO答案)都建议在包装中添加一个菜单......
我尝试过的:
IDG_VS_MENU_CONTEXTMENUS而不是IDM_VS_CTXT_CODEWIN(看完这篇文章后:使用vsx如何使用命令创建子菜单?)另外你可以看到我使用这个BeforeQueryStatus …
我一直在尝试在右键菜单中添加另一个选项(就在Add references之上)来构建一些come包.
我正在使用VSPackaging(VS 2010).问题是我无法获得正确的Guid,我可以在正确的位置获得按钮.
我尝试了以下方法:
<Menu guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" priority="0x0000" type="Context">
Run Code Online (Sandbox Code Playgroud)
但这只能获得项目级别的控制而不是项目级别的控制.
我有一个带有几个命令的VS2010 VSIP包,这些命令被添加到javascript编辑器的上下文菜单中,我正在使用
<Group guid="guidPrettyJsCmdSet" id="ContextMenuGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>
</Group>
Run Code Online (Sandbox Code Playgroud)
但它只适用于C#文件,如何让它适用于.js文件?