如何在 vsix 项目中获取和使用 Visual Studio 命令

How to get and use Visual Studio command in vsix project

我有一个简单的 Visual Studio 扩展项目,其中包含一个菜单项和命令。

这里是命令执行函数:

private void Execute(object sender, EventArgs e)
{
    ThreadHelper.ThrowIfNotOnUIThread();

    string remoteDebuggerPath = @"C:\Users\mgabbay\Perforce\mgabbay_mgabbay-MOBL_3867\RemoteDebugger\RemoteDebugger.Cli\bin\Debug\netcoreapp3.0\RemoteDebugger.Cli.exe";

    System.Diagnostics.ProcessStartInfo proc = new System.Diagnostics.ProcessStartInfo();
    proc.FileName = @"C:\windows\system32\cmd.exe";
    proc.Arguments = $"/c {remoteDebuggerPath}";
    proc.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;

    var process = System.Diagnostics.Process.Start(proc);

    process.WaitForExit();

    if (process.ExitCode == 0)
    {
        // Run ReAttach to process command here
    }

    process.Dispose(); 
}

我想对命令执行一些操作,完成后我想启动 'ReAttach to process' Visual studio 命令。

我在 VsDbgCmdUsed.VSCT 文件中找到了命令 table。

命令 guid 是 -> "guidVSDebugCommand" ID 是 -> id="cmdidReattach" 如何通过我的扩展程序调用此命令?

非常感谢。

您可以使用 IVsUIShell.PostExecCommand.

调用带有 guid 和 id 的命令

或直接致电DTE.ExecuteCommand("Debug.ReattachtoProcess");