我知道可以使用Process.Start()
启动一个进程。
那么是否有办法将调试器附加到该进程上呢?
并非直接在代码中实现,但是否有其他方法呢?
我知道可以使用Process.Start()
启动一个进程。
那么是否有办法将调试器附加到该进程上呢?
并非直接在代码中实现,但是否有其他方法呢?
aspnet_wp.exe
或w3wp.exe
来附加到它。您可以在代码中实现此操作。
public static void Attach(DTE2 dte)
{
var processes = dte.Debugger.LocalProcesses;
foreach (var proc in processes.Cast<EnvDTE.Process>().Where(proc => proc.Name.IndexOf("YourProcess.exe") != -1))
proc.Attach();
}
internal static DTE2 GetCurrent()
{
var dte2 = (DTE2)Marshal.GetActiveObject("VisualStudio.DTE.12.0"); // For VisualStudio 2013
return dte2;
}
使用方法:
Attach(GetCurrent());
Marshall.GetActiveObject()
在 .NET Core 中不可用,但您可以使用 https://dev59.com/jL7pa4cB1Zd3GeqPsijy#64826127 作为解决方法。 - Holistic Developer