You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:55:01