0

我开发了一个 Visual Studio 包插件,今天我需要在 C# 中实现对 iisexpress 的附加。

我的插件通过上下文菜单中的按钮在 Visual Studio 编辑器中构建活动文档项目,在例程结束时,我需要附加它。

我研究并发现它:

System.Diagnostics.Debugger.Launch();

但是,当执行此代码时,Visual Studio 会冻结并关闭。

在这段代码之前,我尝试通过以下方式找到 iisexpress 进程:

var IsIisRunning = System.Diagnostics.Process.GetProcessesByName("iisexpress");

if (IsIisRunning.Length == 0)
    return;

所以我知道这个过程是存在的。

我是不是忘记了什么?

有人可以帮助我吗?

谢谢你的时间。

4

1 回答 1

0

我使用 ENVDTE80.Process2 对象解决了这个问题,如下所示:

EnvDTE80.Debugger2 dbg2 = (EnvDTE80.Debugger2)dte.Debugger;
EnvDTE80.Transport trans = dbg2.Transports.Item("Default");
EnvDTE80.Engine dbgeng;
dbgeng = trans.Engines.Item("Managed (v4.5, v4.0)");
var proc2 = (EnvDTE80.Process2)dbg2.GetProcesses(trans, Environment.MachineName).Item("iisexpress.exe");
proc2.Attach2(dbgeng);
于 2015-08-14T21:51:07.947 回答