Надстройка Visual Studio для автоматического подключения к серверу разработки

Кто-нибудь знает о надстройке Visual Studio 2010, которая автоматически позволяет подключаться к работающему экземпляру сервера разработки ASP.Net? А если в настоящее время запущено несколько серверов, отобразить быстрое диалоговое окно, в котором можно выбрать из списка только запущенные серверы разработки ASP.Net?

Зачем мне это нужно? ‹- можете пропустить эту часть.

Обычно я разрабатываю / отлаживаю веб-приложения, запускаю браузер и перемещаюсь по приложению, пока не дойду до нужной страницы (может быть много страниц). Я не хочу, чтобы отладчик был прикреплен через эти шаги для различных причин (это медленнее, чем без его подключения, могут быть обнаружены посторонние точки останова, у меня может быть разрыв, когда "брошено" включено, и я не хочу прерывать работу раньше в приложении, когда возникают обработанные ошибки и т. д.)

Я перехожу на нужную страницу, затем использую меню Visual Studio, выбрав Отладка> Присоединить к процессу, а затем из диалогового окна Присоединить к процессу мне нужно прокручивать весь путь вниз (страницы, страницы и страницы процессов), пока я не найдите нужный мне процесс WebDev.WebServer40.EXE и выберите его.

Это заставляет меня убирать руки с клавиатуры и использовать мышь (чего я обычно стараюсь избегать).

И это кажется ненужным повторением, поскольку, если я отлаживаю веб-приложение ASP.Net, я всегда хочу подключиться к экземпляру WebDev.WebServer40.exe.


person CleverPatrick    schedule 30.09.2011    source источник
comment
Если вы не хотите подключаться к экземпляру WebDev.WebServer20.exe, w3wp.exe, iisexpress.exe или aspnet_wp.exe.   -  person Chris Shouts    schedule 30.09.2011
comment
Я был бы рад, если бы надстройка отфильтровала эти варианты. (или, что еще лучше, был достаточно умен, чтобы читать настройки проекта и автоматически знать, где этот проект выполняется.)   -  person CleverPatrick    schedule 30.09.2011
comment
Я не видел части подсказки, но было бы довольно легко добавить эту функцию в свой ответ. Вам просто нужно будет найти команды для выполнения запроса и т. Д., Но вся необходимая информация уже там!   -  person Allen Rice    schedule 28.01.2012
comment
Ваш ответ великолепен, Аллен. Помечено как принято. Спасибо!   -  person CleverPatrick    schedule 31.01.2012
comment
Вы можете сделать это с клавиатуры, нажмите Ctrl + Alt + P, затем Alt + V (необходимо, только если фокуса еще нет в списке) и начните вводить webdev ..... нажмите Alt + A и вуаля! Как бы то ни было, я с вами, автоматизация - это лучший способ, если вы часто подключаетесь.   -  person Piotr Owsiak    schedule 30.08.2012
comment
Что было бы лучше всего, так это иметь команду, которая присоединялась бы к тому же процессу, который вы были прикреплены в последний раз, что вы можете абсолютно сделать как надстройку (на самом деле, я думаю, что сделаю это для себя) и прикрепить к ней глобальный ключевой аккорд через Инструменты - ›Параметры -› Environemnt - ›Клавиатура, да, это будет действительно здорово :)   -  person Piotr Owsiak    schedule 30.08.2012
comment
Возможный дубликат Visual Studio - прикрепить к ярлыку процесса   -  person Tim Abell    schedule 16.02.2017


Ответы (3)


Я предпочитаю делать то же самое, и это МОЖНО привязать к нажатию клавиши с помощью макроса.

Перейти к Инструменты> Макросы> Macro 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 + Alt + D, но помещаю все, что вы хотите, в текстовое поле «Нажмите сочетания клавиш» и нажмите «Назначить», затем «ОК».

Теперь все, что вам нужно сделать, это нажать Ctrl + Alt + D, чтобы присоединиться ко всем экземплярам cassini.

Я видел различные версии этого в Интернете и это было последним, что я нашел. Мне пришлось немного изменить это, чтобы удалить лишние веб-процессы и удалить .exe из WebDev.WebServer.exe, чтобы он мог отлаживать экземпляры .net 4.0 cassini.

person Allen Rice    schedule 27.01.2012
comment
Печально то, что из VS2012 убрали макросы :( - person Piotr Owsiak; 30.08.2012
comment
Что? Сегодня я наконец установил 2012. Это неутешительно: - / - person Allen Rice; 31.08.2012
comment
Это потрясающе, я не знаю, почему я так долго ждал этого вопроса и ответа. На нашем сервере разработки SharePoint (где установлен VS) у нас часто бывает от 6 до 10 процессов w3wp, и мне приходится подключаться ко всем из них каждый раз при отладке. Отлично.... - person C.List; 09.08.2013

Я не знаю ни одной такой надстройки , но вы можете более легко подключиться к процессу, используя сочетания клавиш и нажимая «W» для перехода к процессу WebDev.

Ctrl + Alt + P - Присоединить к процессу
(окно процесса теперь имеет фокус)
Нажмите W , который переходит к процессам, начинающимся с W
Нажмите Enter, чтобы прикрепить

Не надстройка, но вы можете сделать это, не касаясь мыши.

person wal    schedule 30.09.2011
comment
Спасибо, что поделились ярлыком Присоединить к процессу - по какой-то причине он скрыт в описании ярлыка меню отладки. - person SliverNinja - MSFT; 11.09.2012

Проверьте этот ответ: Присоединить к процессу в 2012 году

Это простой плагин, который дает ярлыки для подключения к агенту nunit, IIS и IIS Express. Это чистое удобство по сравнению с Ctrl-Alt-P, но оно удобно.

Прямая ссылка на плагин здесь

person faester    schedule 18.12.2012