Pat*_*eam 6 menu visual-studio solution-explorer vsix
我正在开发Visual Studio扩展(VSIX).
我需要在解决方案资源管理器中右键单击类/方法/字段项,在源文件项下找到自定义右键单击菜单:

在.vsct文件中,我已经通过这种方式扩展了Solution Explorer 项目/文件夹/源文件/引用右键菜单:
<CommandPlacement guid="guidNDepend_PackageCmdSet" id="grpSolutionExplorer" priority="0x100">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" />
</CommandPlacement>
<CommandPlacement guid="guidNDepend_PackageCmdSet" id="grpSolutionExplorer" priority="0x100">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE" />
</CommandPlacement>
<CommandPlacement guid="guidNDepend_PackageCmdSet" id="grpSolutionExplorer" priority="0x100">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_FOLDERNODE" />
</CommandPlacement>
<CommandPlacement guid="guidNDepend_PackageCmdSet" id="grpSolutionExplorer" priority="0x100">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_REFERENCE" />
</CommandPlacement>
Run Code Online (Sandbox Code Playgroud)
我尝试了所有其他没有成功的价值观:
IDM_VS_CTXT_CODEWIN
IDM_VS_CTXT_XPROJ_MULTIITEM
IDM_VS_CTXT_XPROJ_PROJITEM
IDM_VS_CTXT_NOCOMMANDS
IDM_VS_CTXT_REFERENCEROOT
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
(请注意,我已经有一些棘手的代码来解析右键单击的代码元素,在调用处理程序IVsSelectionEvents.OnSelectionChanged()之前调用QueryStatus())
看到:
使用EnableVSIPLogging识别VS 2005 + SP1的菜单和命令
和:
谢谢卡洛斯,我做了这个工作:)所以让我们解释一下.首先,如博客文章中所述,我设置了regkey:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\General]
"EnableVSIPLogging"=dword:00000001
Run Code Online (Sandbox Code Playgroud)
然后重新标记VS2013,按住Ctrl + SHIFT并右键单击SlnExplorer窗口中的文件内容类.我懂了:

Guid就是那个guidSHLMainMenu,但我需要从值中获取命令ID 1842(0x0732十六进制).我google了一下,发现了这个答案.我安装了VS2013 SDK.我找了找到头文件的位置vsshlids.h.它是在:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VSSDK\VisualStudioIntegration\Common\Inc
Run Code Online (Sandbox Code Playgroud)
在这个目录中,我搜索了包含的任何文本文件732.我找到了
#define IDM_VS_CTXT_PROJWIN_FILECONTENTS 0x732 // Context menu for GraphNode items in the Solution Explorer
Run Code Online (Sandbox Code Playgroud)
在
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VSSDK\VisualStudioIntegration\Common\Inc\vsshlids.h
Run Code Online (Sandbox Code Playgroud)
因此,我所寻找的名称是IDM_VS_CTXT_PROJWIN_FILECONTENTS,实际上,这个值就像魅力一样; 谢谢卡洛斯!
| 归档时间: |
|
| 查看次数: |
3155 次 |
| 最近记录: |