使用C#

时间:2015-08-14 17:35:30

标签: c# visual-studio visual-studio-debugging envdte visual-studio-package

我开发了一个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;

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

我忘记了什么吗?

有人可以帮助我吗?

感谢您的时间。

1 个答案:

答案 0 :(得分: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);