Как остановить автоматическое закрытие браузера при прекращении отладки на VS 2017

338

Я пробую новый VS 2017 RC и задаюсь вопросом, знает ли кто-нибудь, как вернуть предыдущее поведение отладки

В VS 2015 все прошло так:

Нажмите начать отладку

  • Сайт открывается в новой вкладке Chrome
  • Нажмите остановить отладку
  • Сайт все еще открыт, а сайт все еще работает / активен

Сейчас в 2017 году:

  • Нажмите начать отладку
  • Веб-сайт открывается в новом окне, которое не может стыковаться с другими окнами / вкладками Chrome
  • Нажмите остановить отладку
  • Окно веб-сайта / Chrome закрывается, я не могу продолжать пользоваться сайтом, если я не захожу в окно локального хоста в Chrome вручную

Возможно ли в 2017 году вернуться к стилю 2015 года? Таким образом, окно Chrome / веб-сайта может стыковаться с другими окнами / вкладками Chrome, и оно остается открытым после прекращения отладки?

Кроме того, я нахожу, что новое окно Chrome разочаровывает, поскольку в нем нет доступной истории / контента. Например, я не могу автозаполнять формы или URL, что очень раздражает, когда я пытаюсь проверить форму

mejobloggs
источник

Ответы:

585

Visual Studio 2017 версии 15.7 и выше и Visual Studio 2019 снова изменили ситуацию.

Отключение следующих флажков позволит вам держать браузер открытым (не закрывается после остановки отладки) и открывает другую вкладку (вместо другого окна):

введите описание изображения здесь

введите описание изображения здесь

Сервис> Параметры> Отладка> Общие

  • Отключить «Включить отладку JavaScript для ASP.NET (Chrome, Edge и IE)».

Инструменты> Параметры> Проекты и решения> Веб-проекты

  • ( Visual Studio 2017 ) Отключить «Остановить отладчик, когда окно браузера закрыто».
  • ( Visual Studio 2019 ) Отключить «Остановить отладчик, когда окно браузера закрыто, закрыть браузер, когда отладка остановлена».
jerone
источник
Смотрите также этот отчет об ошибке в сообществе разработчиков Microsoft.
Уве Кейм
113
Кто, черт возьми, добавил эту функцию и подумал, что да, отлично. Это так раздражает!
Джон
2
Просьба также предоставить текстовое решение для
случая,
18
Для VS 2019: если кто-то ищет последний вариант (Остановить отладчик, когда окно браузера закрыто), он переместил его в Инструменты> Параметры> Проекты и решения> Веб-проекты> Остановить отладчик, когда окно браузера закрыто, закройте браузер при отладке. останавливается . Посмотреть изображение
jag
1
@jag Спасибо, я включил это в инструкции.
Джерон
83

Причина изменения в поведении связана с поддержкой VS 2017 для отладки JavaScript / TypeScript, работающего в Chrome. Смотрите объявление здесь https://blogs.msdn.microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in-google-chrome/

Чтобы вернуться к поведению 2015 года, когда Chrome не закрывается отладчиком, отключите отладчик сценариев IE / Chrome в Сервис -> Параметры, например так:

Параметры отладчика

Мэдс Квист Кристенсен
источник
8
Это не работало для меня, пока я не деактивировал «Включить редактирование и продолжить» ( stackoverflow.com/questions/20831676/… ). Я думаю, что оба изменения вместе - полное решение.
JoaoRibeiro
4
не работает в vs2017, даже после отключенияEdit and Continue
ахмад молай
24

Для тех из вас, кто обновил Visual Studio 2019, эта конфигурация теперь находится в разделе Инструменты> Параметры ...

А затем в диалоговом окне параметров (см. Изображение ниже) Проекты и решения> Веб-проект:
снимите флажокStop debugger when broswer window is closed, close browser when debugging

введите описание изображения здесь

Жан-Себастьян Жерве
источник
Снять галочку только с этой опции недостаточно. Когда вы закрываете браузер, отладчик также останавливается.
FrenkyB
@FrenkyB Я только предполагаю, что вам нужно закрыть и снова открыть все экземпляры Visual Studio, поскольку отладчик не останавливается на моем конце, когда я закрываю браузер.
Жан-Себастьян Жерве
19

Я пишу этот ответ, так как думаю, что предыдущие покрывают только половину проблемы.

Первое, что вы хотите, это избавиться от этого надоедливого «запуска chrome как нового окна и автоматического закрытия при прекращении отладки»

Инструменты → Параметры → снимите флажок Включить отладку JavaScript для ASP.NET

После этого при запуске отладки chrome открывает новую вкладку, после остановки вкладка не закрывается, а при обновлении сайта отображается белый экран

снова в Инструменты → Параметры

снимите флажок Включить редактировать и продолжить

С тех пор вы вернули свое старое поведение.

Окно настроек

Pieczarr
источник
3
с VS 15.7.0 требуются оба варианта (до того, как хватит ответа)
Стефан,
1
@ Стефан правильный; Вам нужно отключить обе опции. Но раньше он открывал вкладку, а теперь открывает еще один экземпляр выбранного браузера.
Джерон
но мне нужно отредактировать и продолжить для кода на стороне сервера, почему они переплетаются?
эфирное
@ethermal jerone's answer (Web Projects -> Stop Debugger unchecked) работает без отключения редактирования и продолжения.
Стив Грин,
2

Перейдите в Инструменты -> Параметры и найдите « Остановить отладчик ». Затем выберите узел Веб-проекты в разделе Проекты и решения. Снимите флажок « Остановить отладчик, когда окно браузера закрыто ». Перед этой опцией вы должны применить предложение @jerone .

PS: эта опция может быть использована после VS версии 15.7

Может PERK
источник
1

Есть два способа сделать это:

  1. Либо запустить без отладки, нажав Ctrl + F5 или
  2. Запустите с отладкой (нажав клавишу f5), затем перейдите в меню «Отладка» и нажмите «Отсоединить все»

Надеюсь, это поможет.

Майкл Брауде
источник
6
Я не думаю, что любой ответ действительно решает эту ужасную проблему рабочего процесса / отладки 2017 года. Дело в том, что в 2015 году вы можете запустить существующий экземпляр Chrome и по-прежнему отлаживать код сервера в VS. Кажется, что нет разумного способа сделать это с 2017 года. Вам не нужно «Отсоединять все» каждый раз, когда вы запускаете свое приложение, и закрывать дополнительный всплывающий экземпляр Chrome и т. Д. Не доставляя Майклу Б. трудностей, просто очень раздражен MS по этому вопросу. Надеюсь, что есть лучшее решение, чтобы вернуться к рабочему процессу отладки 2015 года, который имел смысл.
Остин Харрис
4
@ Остин, спасибо за этот отзыв. Я передам это команде (я работаю над Visual Studio в Microsoft)
Майкл Брауде
3
@MichaelBraude да, это большой шаг назад в производительности.
Spongman
1
Как говорит Мэдс, вы можете отключить новое поведение, если оно вам не нравится. Спасибо за этот отзыв!
Майкл Брауд
2
да, но это также отключает отладчик Chrome.
Spongman