如何在 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");
我有一个简单的 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");