Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查找VSIX命令的commnad ID VS 2019_C#_Visual Studio 2017_Vsix - Fatal编程技术网

C# 查找VSIX命令的commnad ID VS 2019

C# 查找VSIX命令的commnad ID VS 2019,c#,visual-studio-2017,vsix,C#,Visual Studio 2017,Vsix,在VS2017中,我正在用C#编写自己的VSIX命令。从C代码中,我想调用另一个VSIX命令(这不是我的命令,我只知道该按钮上的工具提示)。如何找到该按钮的命令Id 我试过了 但是没有帮助 我也试过,但运气不好 public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) {

在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(
            @"Software\Microsoft\VisualStudio\" + DTE.Version + @"\General");
        key.SetValue("EnableVSIPLogging", 1);
    }
}

获取与VSIX命令(按钮)关联的命令Id。

VS 2017及更新版本不再利用系统注册表,因此尝试为VS 2017、VS 2019等设置注册表项将不再有效。这些设置现在驻留在privateregistry.bin中,虽然您可以详细编辑它的方向,或者使用vsregedit.exe实用程序,但我也不推荐这样做。编辑privateregistry.bin很棘手,而且vsregedit.exe没有文档记录

现在,我建议安装MAD。这包括一个将在“查看”菜单下添加“启用VSIP日志记录”菜单命令的包(您需要重新启动VS才能使更改生效)

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


诚恳地说,

上面的命令由Visual Commander在Visual Studio中运行,从而更改了私有注册表。我的VS2019在“Computer\HKEY\U CURRENT\U USER\SOFTWARE\Microsoft\VisualStudio\16.0\U 5b74d3a2\General”下更改了注册表,这对我很有用