Visual Studio 2012加载项 - 如何将调试器附加到进程

时间:2013-07-09 22:34:18

标签: c# .net visual-studio-2012 visual-studio-addins

我有一个场景,当我开始在visual studio中调试silverlight OOB项目时,调试器会自动附加到该项目,但它不会附加到运行Silverlight应用程序连接到的Web服务的iisexpress进程。它确实启动iisexpress但不会自动附加到它。我必须手动转到Debug-> Attach to process,找到iisexpress并附加到它来调试客户端和服务器端代码。

由于VS2012删除了宏,我无法使用它自动附加,所以我试图创建一个简单的加载项来代替它。

我仍然坚持如何依附于这个过程。我尝试了以下方法,它们都在正确的时间触发并找到iisexpress进程,但是当尝试连接到它时,所有3个都给出了异常。谁能建议我怎么做?

private void DebuggerEventsOnOnEnterRunMode(dbgEventReason reason)
{
    if (reason == dbgEventReason.dbgEventReasonLaunchProgram)
    {
        foreach (Process process in _applicationObject.Debugger.LocalProcesses)
        {
            var nameparts = process.Name.Split(Path.DirectorySeparatorChar);
            string name = nameparts[nameparts.Length - 1];
            if (name.Contains("iisexpress"))
                    process.Attach();  
                    // also tried: _applicationObject.ExecuteCommand("Debug.AttachToProcess", process.Name);
                    // and: _applicationObject.ExecuteCommand("Debug.AttachToProcess", name);
        }
    }
}

1 个答案:

答案 0 :(得分:4)

适用于VS 2010和& VS 2012:

  

解决方案 - >右键单击 - >设置启动项目 - >多个启动项目

选择您的2个项目并在行动中将其设置为开始(可用于第二个项目)启动而不调试