Visual Studio 2012 插件 - 如何将调试器附加到进程

5
我有一个场景,在Visual Studio中开始调试Silverlight OOB项目时,调试器会自动附加到该项目,但它不会自动附加到运行Silverlight应用程序连接的Web服务的iisexpress进程。它确实启动了iisexpress,但没有自动附加。我必须手动转到“调试”->“附加到进程”,找到iisexpress并附加以调试客户端和服务器端代码。
由于VS2012取消了宏,因此我无法使用它来自动附加,因此我正在尝试创建一个简单的插件来代替它。
但我卡在如何附加进程上。我尝试了以下两种方法,在正确的时间和位置找到了iisexpress进程,但是在尝试附加时都出现了异常。请问有人能建议我该怎么做吗?
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);
        }
    }
}

与此相关的链接:https://dev59.com/j2w15IYBdhLWcg3wT5_2 - Tim Abell
1个回答

4

适用于VS 2010和VS 2012:

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

选择您的两个项目,在操作下将其设置为启动,而非(对于第二个项目)可能的无调试启动


谢谢!这在 VS2012 中也很有用;只需将它们都设置为“开始”,不需要添加插件。 :) - mutex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接