Как получить и использовать команду Visual Studio в проекте vsix - PullRequest
0 голосов
/ 12 января 2020

У меня есть простой проект расширения 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(); 
}

Я хочу выполнить некоторые действия с командой и после того, как это сделано, я хочу запустить команду Visual Studio «ReAttach to process».

Я нашел таблицу команд в файле VsDbgCmdUsed.VSCT.

Guid команды ->> guidVSDebugCommand "и идентификатор -> id = "cmdidReattach" Как я могу вызвать эту команду через мое расширение?

Большое спасибо.

1 Ответ

1 голос
/ 13 января 2020

Вы можете вызвать команду с guid и id с помощью IVsUIShell.PostExecCommand .

Или просто вызвать DTE.ExecuteCommand("Debug.ReattachtoProcess");

...