是否有人知道Visual Studio 2010加载项会自动允许您附加到ASP.Net开发服务器的运行实例?如果当前有多个正在运行,请显示一个快速对话框,让您从仅运行的ASP.Net开发服务器列表中进行选择?
我为什么要这个? < - 随意跳过这一部分. 我通常开发/调试Web应用程序的方法是启动浏览器并浏览应用程序,直到我到达我想要的页面(可能有很多页面.)我不希望通过这些步骤附加调试器以用于各种原因(它比没有连接慢,可能会遇到无关的断点,我可能会在“抛出”打开时打破,并且在处理错误被抛出时不想在应用程序中提前中断等等…) 我导航到我想要的页面,然后使用Visual Studio菜单调试>附加到Process,然后从Attach to Process对话框中,我必须一直向下滚动(页面和页面以及进程页面),直到找到我想要的WebDev.WebServer40.EXE进程并选择它.
这样做让我把手从键盘上移开并使用鼠标(我通常会尽量避免使用鼠标.)
这样做似乎是不必要的重复,因为如果我正在调试ASP.Net Web应用程序,我总是想附加到WebDev.WebServer40.exe的实例.
解决方法
我更喜欢做同样的事情,并且可以将它全部绑定到带有宏的击键.
转到工具>宏>宏IDE
Imports System Imports EnvDTE Imports EnvDTE80 Imports EnvDTE90 Imports EnvDTE90a Imports EnvDTE100 Imports System.Diagnostics Imports System.Collections.Generic Public Module AttachingModule Sub AttachToAspNET() Try Dim process As EnvDTE.Process Dim listProcess As New List(Of String) '' // uncomment the processes that you'd like to attach to. I only attach to cassini '' // listProcess.Add("aspnet_wp.exe") '' // listProcess.Add("w3wp.exe") listProcess.Add("webdev.webserver") For Each process In DTE.Debugger.LocalProcesses For Each procname As String In listProcess If process.Name.ToLower.IndexOf(procname) <> -1 Then process.Attach() End If Next Next Catch ex As System.Exception MsgBox(ex.Message) End Try End Sub End Module
点击工具>选项
点击环境>键盘
我把宏放在MyMacros中,所以我在“Show Commands Containing”文本框中查找“Macros.MyMacros.AttachingModule.AttachToAspNET”.
我更喜欢使用Ctrl Alt D,但在“按快捷键”文本框中输入您想要的任何内容,然后单击“分配”,然后单击“确定”
现在,您只需按Ctrl Alt D即可附加到所有cassini实例.
我已经在互联网上看到了各种版本,而this是我发现的最新版本.我不得不稍微修改一下以删除额外的Web进程并从WebDev.WebServer.exe中删除.exe,以便调试.net 4.0的cassini实例.