Jak zatrzymać automatyczne zamykanie przeglądarki po zatrzymaniu debugowania w VS 2017

338

Próbuję nowego VS 2017 RC i zastanawiam się, czy ktoś wie, jak odzyskać poprzednie zachowanie debugowania

W VS 2015 wyglądało to tak:

Naciśnij rozpocznij debugowanie

  • Witryna otwiera się w nowej karcie Chrome
  • Naciśnij przestań debugować
  • Witryna jest nadal otwarta, a witryna nadal działa / jest aktywna

Teraz w 2017 roku:

  • Naciśnij rozpocznij debugowanie
  • Witryna otwiera się w nowym oknie, w którym nie można zadokować z innymi oknami / kartami Chrome
  • Naciśnij przestań debugować
  • Okno witryny / Chrome zamyka się, nie mogę kontynuować korzystania z witryny, chyba że ręcznie przejdę do okna localhost w Chrome

Czy w 2017 roku można wrócić do stylu 2015? Czyli okno Chrome / Witryna może zadokować się z innymi oknami / kartami Chrome i pozostaje otwarte po zakończeniu debugowania?

Ponadto uważam, że nowe okno Chrome jest frustrujące w użyciu, ponieważ wydaje się, że nie ma dostępnej historii / treści. Np. Nie mogę autouzupełniania formularzy ani adresów URL, co jest bardzo denerwujące, gdy próbuję przetestować formularz

mejobloggs
źródło

Odpowiedzi:

585

Program Visual Studio 2017 w wersji 15.7 i nowszej oraz Visual Studio 2019 ponownie zmieniły wszystko.

Wyłączenie następujących pól wyboru pozwoli zachować przeglądarkę otwartą (nie zamyka się po zatrzymaniu debugowania) i otwiera kolejną kartę (zamiast innego okna):

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Narzędzia> Opcje> Debugowanie> Ogólne

  • Wyłącz „Włącz debugowanie JavaScript dla ASP.NET (Chrome, Edge i IE)”.

Narzędzia> Opcje> Projekty i rozwiązania> Projekty internetowe

  • ( Visual Studio 2017 ) Wyłącz „Zatrzymaj debuger, gdy okno przeglądarki jest zamknięte”.
  • ( Visual Studio 2019 ) Wyłącz „Zatrzymaj debuger po zamknięciu okna przeglądarki, zamknij przeglądarkę po zatrzymaniu debugowania”.
jerone
źródło
Zobacz także ten powiązany raport o błędach w społeczności programistów Microsoft.
Uwe Keim
112
Kto do diabła dodał tę funkcję i pomyślał: tak, idealnie. To takie denerwujące!
Jon
2
Podaj także rozwiązanie tekstowe, kiedy obraz zostanie usunięty itp.
moa
18
W przypadku VS 2019: jeśli ktoś szuka ostatniej opcji (Zatrzymaj debuger, gdy okno przeglądarki jest zamknięte), przeniósł ją do Narzędzia> Opcje> Projekty i rozwiązania> Projekty internetowe> Zatrzymaj debuger, gdy okno przeglądarki jest zamknięte, zamknij przeglądarkę podczas debugowania zatrzymuje się . Zobacz obraz
jag
1
@jag Dzięki, zamieściłem go w instrukcji.
jerone
83

Przyczyną zmiany zachowania jest obsługa VS 2017 do debugowania kodu JavaScript / TypeScript uruchomionego w Chrome. Zobacz ogłoszenie tutaj https://blogs.msdn.microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in-google-chrome/

Aby powrócić do zachowania z 2015 r., Kiedy debugger nie zamyka Chrome, wyłącz debugera skryptów IE / Chrome w menu Narzędzia -> Opcje:

Opcje debugowania

Mads Kvist Kristensen
źródło
8
Nie działało to dla mnie, dopóki nie dezaktywowałem „Włącz edycję i kontynuuj” ( stackoverflow.com/questions/20831676/… ). Myślę, że obie zmiany razem są kompletnym rozwiązaniem.
JoaoRibeiro
4
nie działa w vs2017, nawet po wyłączeniuEdit and Continue
ahmad molaie
24

Dla tych z was, którzy zaktualizowali do Visual Studio 2019, ta konfiguracja jest teraz w Narzędzia> Opcje ...

A następnie w oknie dialogowym opcji (patrz obrazek poniżej) Projekty i rozwiązania> Projekt internetowy:
OdznaczStop debugger when broswer window is closed, close browser when debugging

wprowadź opis zdjęcia tutaj

Jean-Sébastien Gervais
źródło
Aby odznaczyć tylko tę opcję, nie wystarczy. Po zamknięciu przeglądarki debuger również się zatrzymuje.
FrenkyB
@FrenkyB Zgaduję tylko, że musisz zamknąć i ponownie otworzyć wszystkie instancje studia wizualnego, ponieważ vs debugger nie zatrzymuje się po mojej stronie, kiedy zamykam przeglądarkę.
Jean-Sébastien Gervais
19

Piszę tę odpowiedź, ponieważ uważam, że poprzednie dotyczą tylko połowy problemu.

Pierwszą rzeczą, której chcesz, jest pozbyć się irytującego „uruchom chrome jako nowe okno i automatycznie zamknij po zatrzymaniu debugowania”

Narzędzia → Opcje → usuń zaznaczenie Włącz debugowanie JavaScript dla ASP.NET

Po zrobieniu tego podczas uruchamiania debugowania Chrome otwiera nową kartę, po zatrzymaniu karta nie jest zamknięta, ale odświeżenie strony pokazuje biały ekran

ponownie w Narzędzia → Opcje

odznacz opcję Włącz edycję i kontynuuj

Odtąd odzyskałeś swoje stare zachowanie.

Okno opcji

Pieczarr
źródło
3
w wersji VS 15.7.0 wymagane są obie opcje (zanim wystarczająca była wystarczająca odpowiedź)
Stefan
1
@Stefan ma rację; potrzebujesz teraz obu opcji wyłączonych. Ale wcześniej otwierałoby zakładkę, a teraz otwiera kolejne wystąpienie wybranej przeglądarki.
jerone
ale potrzebuję edytować i kontynuować dla kodu po stronie serwera, dlaczego są one powiązane?
eteryczny
Odpowiedź @ethermal jerone (Projekty Web -> Odznacz Stop Debugger) działa bez wyłączania opcji Edytuj i kontynuuj.
Steve Greene
2

Przejdź do Narzędzia -> Opcje i wyszukaj „ Stop Debugger ”. Następnie wybierz węzeł Projekty internetowe w obszarze Projekty i rozwiązania. Odznacz „ Zatrzymaj debuger po zamknięciu okna przeglądarki ”. Przed tą opcją powinieneś zastosować sugestię @jerone .

PS: Z tej opcji można korzystać po wersji VS 15.7

Może PERK
źródło
1

Można to zrobić na dwa sposoby:

  1. Albo uruchom bez debugowania, naciskając ctrl + f5 lub
  2. Uruchom z debugowaniem (naciskając klawisz F5), a następnie przejdź do menu Debugowanie i naciśnij przycisk „Odłącz wszystko”

Mam nadzieję, że to pomaga.

Michael Braude
źródło
6
Nie wydaje mi się, aby którakolwiek odpowiedź naprawdę rozwiązała ten okropny problem z przepływem pracy / debugowaniem w 2017 roku. Chodzi o to, że w 2015 r. Możesz uruchomić istniejącą instancję Chrome i nadal debugować kod serwera w VS. Wydaje się, że nie ma rozsądnego sposobu, aby to zrobić w 2017 r. Nie powinieneś „Odłącz wszystkiego” za każdym razem, gdy uruchamiasz aplikację, i zamykać dodatkową instancję Chrome, która się wyskakuje itp. Nie przeszkadzając Michaelowi B. po prostu bardzo zirytowany SM na ten temat. Mam nadzieję, że istnieje lepsze rozwiązanie, aby wrócić do przepływu pracy debugowania w 2015 r., Który miał sens.
Austin Harris
4
@Austin, dzięki za opinie. Przekażę to zespołowi (pracuję nad Visual Studio w Microsoft)
Michael Braude
3
@MichaelBraude tak, to duży krok wstecz w wydajności.
Spongman,
1
Jak mówi Mads, możesz wyłączyć nowe zachowanie, jeśli ci się nie podoba. Dziękujemy za opinię!
Michael Braude
2
tak, ale robienie tego również wyłącza debugger chrome.
Spongman