如何获取Visual Studio中Git分支右键菜单的GUID:CMDId组合
VS 2022扩展:Git分支右键菜单CmdID查找方案
1. 命令窗口日志定位
- 按
Ctrl+Shift+A打开命令窗口,执行Tools.LogCommandWindowOutput /on开启日志 - 在「Git仓库窗口」或「Git更改窗口」右键任意分支,点击一个原有菜单项(如「切换到分支」)
- 执行
Tools.LogCommandWindowOutput /off关闭日志,查看命令窗口输出或%APPDATA%\Microsoft\VisualStudio\<你的VS版本号>\ActivityLog.xml日志文件,获取该菜单项的GUID和CmdID,以此为基准查找同组菜单ID
2. 反编译Git扩展程序集
- 找到VS安装目录下的
Microsoft.TeamFoundation.Git.Provider.dll(路径示例:C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Microsoft\Git\) - 用dnSpy等反编译工具打开程序集,搜索
GuidList.guidGitProviderCmdSet(对应你提供的GUID),查找分支右键菜单相关的CommandID定义,直接获取目标菜单组的CmdID
3. 代码遍历有效命令
- 在扩展项目中添加
Microsoft.VisualStudio.Shell引用,编写调试代码遍历指定GUID下的命令:
var cmdService = GetService(typeof(IOleCommandService)) as IOleCommandService; var gitCmdSetGuid = new Guid("{57735d06-c920-4415-a2e0-7d6e6fbdfa99}"); for (int id = 0xf000; id < 0xf200; id++) { var cmdId = new CommandID(gitCmdSetGuid, id); if (cmdService?.QueryStatus(cmdId, null, out var status) == 0) { System.Diagnostics.Debug.WriteLine($"有效CmdID: 0x{id:X4}"); } }
- 启动调试,在输出窗口查看所有有效CmdID,筛选分支菜单相关的ID
4. 查阅VS内置头文件
- 找到VS安装目录下的
vsshlids.h(通常在Common7\IDE\PublicAssemblies关联路径) - 搜索目标GUID,对应
guidGitProviderCmdSet,在该命令集下查找命名含Branch或ContextMenu的常量,直接获取CmdID
内容的提问来源于stack exchange,提问作者satish
相关产品推荐
相关产品推荐

