2013-07-09 56 views
5

我有一个场景,当我开始在Visual Studio中调试Silverlight OOB项目时,调试器会自动附加到该项目,但它不会附加到iisexpress进程它正在运行Silverlight应用程序连接到的Web服务。它确实启动iisexpress,但不会自动附加到它。我必须手动进入Debug-> Attach处理,找到iisexpress并附加到它来调试客户端和服务器端代码。Visual Studio 2012加载项 - 如何将调试器附加到进程

由于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); 
     } 
    } 
} 
+0

有点相关:http://stackoverflow.com/q/6696746/10245 –

回答

4

同时适用于VS 2010 & VS 2012:

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

选择你的2个项目和根据行动将其设置为开始除了(对于第二个项目)可能的开始不调试

+0

谢谢!这也是VS2012中的诀窍;只需将它们设置为“开始”并且不需要添加。:) – mutex

相关问题