查找 VSIX 命令 VS 2019 的通信 ID



在VS2017中,我正在用C#编写自己的VSIX命令。从 C# 代码中,我想调用另一个 VSIX 命令(这不是我的,我只知道该按钮上的工具提示(。如何查找该按钮的命令 ID?

我试过这个 但没有帮助

即使我也试过这个,但不是运气

public class C : VisualCommanderExt.ICommand
{
public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
{
var key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
@"SoftwareMicrosoftVisualStudio" + DTE.Version + @"General");
key.SetValue("EnableVSIPLogging", 1);
}
}

获取使用 VSIX 命令(按钮(关联的命令 ID。

VS 2017及更高版本不再利用系统注册表,因此尝试为VS 2017,VS 2019等设置该注册表项将不再起作用。这些设置现在驻留在privateregistry.bin中,虽然您可以按照此处的详细内容对其进行编辑,或使用vsregedit.exe实用程序,但我也不建议这样做。编辑私有注册表.bin很棘手,并且没有记录 vsregedit.exe。

如今,我建议安装 Mads Extensibility Essentials 软件包。这包括一个包,该包将在"视图"菜单下添加"启用 VSIP 日志记录"菜单命令(需要重新启动 VS 才能使更改生效(。

安装后,您只需使用您感兴趣的命令下拉菜单,然后在按住 CTRL+SHIFT 键的同时,单击您想要详细信息的菜单项。这将显示一个"VSDebug 消息"对话框,其中包含唯一标识您单击的菜单命令的 Guid 和 CmdID。 请注意,这仅适用于通过 VSSDK 的 VSCT 编译器创建的菜单命令和工具栏按钮。某些工具窗口可能具有基于 WPF 的自定义菜单或工具栏,这些菜单或工具栏不是使用 VS 扩展性 API 和资源实现的。在这些情况下,不能使用 VS 扩展性 API 来调用它们。

真诚地

最新更新