8

是否有人知道 Visual Studio 2010 加载项会自动允许您附加到正在运行的 ASP.Net 开发服务器实例?如果当前运行的服务器不止一个,显示一个快速对话框,让您从正在运行的 ASP.Net 开发服务器列表中进行选择

我为什么要这个?<--随意跳过这部分。

我通常开发/调试 Web 应用程序的方式是启动浏览器并在应用程序中导航,直到到达我想要的页面(可能有很多页深。)我不想通过这些步骤附加调试器以用于各种原因(它比没有附加它要慢,可能会遇到无关的断点,当“抛出”打开时我可能会中断,并且在抛出处理的错误时不想在应用程序中更早中断,等等......)

我导航到我想要的页面,然后使用 Visual Studio 菜单调试 > 附加到进程,然后从附加到进程对话框中,我必须一直向下滚动(页面和页面以及进程页面),直到我找到我想要的 WebDev.WebServer40.EXE 进程并选择它。

这样做让我把手从键盘上移开并使用鼠标(我通常会尽量避免这样做。)

这样做似乎是不必要的重复,因为如果我正在调试 ASP.Net Web 应用程序,我总是想附加到 WebDev.WebServer40.exe 的实例。

4

3 回答 3

7

我更喜欢做完全相同的事情,并且可以将其全部绑定到使用宏的击键上。

转到工具 > 宏 > 宏 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 中,因此我在“显示包含的命令”文本框中查找“Macros.MyMacros.AttachingModule.AttachToAspNET”。

我更喜欢使用Ctrl++ AltD但在“Press Shortcut Keys”文本框中输入你想要的任何内容,然后单击Assign,然后OK

现在您所要做的就是点击Ctrl++以附加到所有AltcassiniD实例。

我在互联网上看到过各种版本,是我发现的最新版本。我不得不稍微修改它以删除额外的 Web 进程并从 .exe 中删除 .exe WebDev.WebServer.exe,以便它可以调试 .net 4.0 的 cassini 实例。

于 2012-01-27T17:45:44.763 回答
4

我不知道有任何此类插件,您可以使用快捷键更轻松地附加到该进程并按“W”滚动到 WebDev 进程。

Ctrl+ Alt+ P - 附加到进程
(进程窗口现在有焦点)
Press W,跳转到以 W 开头的进程
Press Enterto attach

不是插件,但您无需触摸鼠标即可完成。

于 2011-09-30T14:59:12.497 回答
1

检查这个答案:2012 年附加到流程

这是一个简单的插件,它提供了连接到 nunit 代理、IIS 和 IIS Express 的快捷方式。与 Ctrl-Alt-P 相比,它纯粹是方便,但它方便。

直接链接到这里的插件

于 2012-12-18T08:41:09.780 回答