Czy program Visual Studio nie uruchamia nowego okna przeglądarki podczas uruchamiania debugowania?

340

Mam już otwarte okno z witryną, którą debuguję. Nie potrzebuję VS, aby uruchamiać kolejną dla mnie za każdym razem, gdy muszę debugować.

Czy istnieje sposób na powstrzymanie tego zachowania?

sker
źródło
Czy masz włączone przeglądanie w kartach? .. I używasz IE?
Quintin Robinson

Odpowiedzi:

415

Otwórz właściwości projektu startowego ( Projekt → { Nazwa projektu} Właściwości ... z menu głównego lub kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań i wybierz Właściwości ), a następnie przejdź do karty Internetowej i w obszarze Rozpocznij akcję wybierz opcję Nie otwieraj strony . Poczekaj na żądanie z aplikacji zewnętrznej .

Nadal będziesz mógł używać dowolnej przeglądarki (lub Fiddlera, cokolwiek), aby uzyskać dostęp do uruchomionej aplikacji, ale nie otworzy ona automatycznie okna przeglądarki, po prostu uruchomi się w tle i będzie czekać na wszelkie żądania.

Paweł Krakowiak
źródło
To wydaje się być naprawdę dobrym rozwiązaniem, ale tak jak Slace, nie zatrzymuje wykonywania w punktach przerwania, mówi, że nie są ładowane żadne symbole. W każdym razie dzięki.
sker
9
To robi. Cały czas używam go do debugowania. Musisz mieć niewłaściwą konfigurację. Sprawdź dwukrotnie, czy masz włączone debugowanie w pliku web.config i czy korzystasz z kompilacji debugowania.
Paweł Krakowiak
1
@mjohnsonengr Przysięgam, że jest to ustawienie lokalne na użytkownika ... Być może masz zaznaczony plik .csproj.user (nie powinieneś).
Paweł Krakowiak
1
To jest [ustawienie lokalne]. Wcześniej zakładałem, że wszystkie ustawienia projektu w tym obszarze są przechowywane w zespole csproj. Wcześniej próbowałem zmienić adres URL, który otworzy przeglądarka, modyfikując „Project URL” i zobaczyłem, że zmienił się w .csproj. Po bliższym zbadaniu widzę teraz znacznik wyboru „Zastosuj ustawienia serwera do wszystkich użytkowników”, który kontroluje tylko to pole. Mój błąd.
mjohnsonengr
4
W przypadku programu Visual Studio na komputerze Mac porównywalne ustawienia znajdują się w obszarze „Projekt> Opcje> Uruchom> Domyślne> ASP.NET Core”. Odznacz „Otwórz URL w przeglądarce internetowej, gdy aplikacja się uruchomi”.
IronRod
135

Dla VS 15.7.1 ToolsOptionsProjects and SolutionsWeb Projects→ odznacz Stop debugger when browser window is closed.

Memebot
źródło
6
VS 15 to Visual Studio 2017 , BTW.
Uwe Keim,
2
Sugerowana zmiana nie rób tego, o co chodzi w pytaniu.
Anatolyevich,
1
Działa dobrze w VS2019 (16.4.4)
Rory McCrossan
75

Zaktualizowana odpowiedź dla projektu .NET Core Web Api ...

Kliknij projekt prawym przyciskiem myszy, wybierz „Właściwości”, przejdź do „Debugowania” i odznacz pole „Uruchom przeglądarkę” (domyślnie włączone).

wprowadź opis zdjęcia tutaj

Greg R. Taylor
źródło
1
@ Grey Gdzie jest ta opcja „Uruchom przeglądarkę”?
Ayush Singhania
Zaktualizowałem odpowiedź: musisz przejść do właściwości swojego projektu, aby przejść do opcji.
CennoxX
44

W projekcie ASP.Net 5 można to teraz ustawić dla każdego profilu uruchamiania.

Otwórz plik launchsettings.json w folderze Właściwości projektu startowego i dodaj "launchBrowser": falsedo konfigurowanego profilu, na przykład:

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}
Joao Costa
źródło
13

To obejście działa dla mnie dla VS 2019

Narzędzia => Opcje

Następnie wpisz Projects and solutionsw polu wyszukiwania.

Wybierz Web Projects.

Następnie odznacz opcję poniżej.

Zatrzymaj debugowanie po zamknięciu okna przeglądarki, zamknij przeglądarkę po zatrzymaniu debugowania.

To działa dla mnie. Mam nadzieję, że to pomoże.

hackerbuddy
źródło
1
Dziękuję za tę wskazówkę.
Win Man
Nadal otwiera nową kartę za każdym razem, gdy zaczynam debugować.
naśladują
12

Możesz użyć funkcji Dołącz do przetwarzania zamiast naciskać F5.

Może to również umożliwiać nawigację przez znane działające sekcje bez spowolnienia załadowanego poniżej debuggera VS.

Aaron Powell
źródło
Próbowałem tego, ale nie zatrzyma wykonywania, gdy znajdzie punkt przerwania. Potrzebuję go, aby zatrzymać się w punktach przerwania, czy istnieje sposób, aby to umożliwić? Dzięki.
sker
1
pod warunkiem, że jesteś podłączony do procesu, który załadował dokładnie te same zestawy, które znajdują się w folderze / bin / aplikacji, wszystkie punkty przerwania będą działać (oh, i pod warunkiem, że istnieją pliki .pdb!)
Aaron Powell
Sprawdziłem, jak to naprawić, ale wydaje się, że to duży problem. Nie mogłem zmusić go do pracy. W międzyczasie skorzystam z rozwiązania Mam Kapelusz. Dziękuję Ci.
sker
Mogę debugować, naciskając klawisz F5 z opcją „czekaj na żądanie z aplikacji zewnętrznej”, ale nie mogę uruchomić Attach To Process (dołączenie do INetMgr.exe). Nigdy nie zatrzymuje się w punkcie przerwania. Korzystałem z VSCommands w VS 2013, ale nowa wersja VSCommands 2015 nie obsługuje jeszcze „Dołącz do IIS”. Chciałbym wiedzieć, o co chodzi.
ErikE
12

Rozwiązałem problem, wykonując poniższe kroki. Przejdź do Narzędzia >> kliknij opcje >> kliknij projekty i rozwiązania >> projekty internetowe >> odznacz opcję „Zatrzymaj debugowanie po zamknięciu przeglądarki”wprowadź opis zdjęcia tutaj

DKR
źródło
Najlepsze rozwiązanie, które pomogło w moim podstawowym projekcie .net
V319,
niedoceniana odpowiedź
Bimal Das
9

Po pierwszym otwarciu projektu internetowego / aplikacji wykonaj Ctrl- F5, który jest skrótem do uruchamiania aplikacji bez debugowania. Następnie, po kolejnym naciśnięciu F5i uruchomieniu debuggera, użyje on tego wystąpienia IE. Następnie zatrzymaj i uruchom debugowanie w Visual Studio zamiast zamykania IE.

Działa na moich komputerach. Korzystam z wbudowanego serwera internetowego dewelopera. Nie wiem, czy to robi różnicę.

Firefox pozostanie również otwarty, abyś mógł debugować w jednym lub obu jednocześnie.

Rex Miller
źródło
Hej, to działa! Wielkie dzięki. Teraz mogę uniknąć około 100 dodatkowych okien na sesję kodowania. Również po naciśnięciu klawisza F5 VS zmienia rozmiar mojego okna IE. Czy wiesz jak mogę tego uniknąć?
sker
Przepraszam sker, nie znam odpowiedzi na to - jednak nie zdarza mi się robić powyższego, więc prawdopodobnie gdzieś jest odpowiedź. Może IE pamięta rozmiar okna i nie ma to związku ze scenariuszem debugowania?
Rex Miller,
7

Wydaje się, że istnieje jeden przypadek, w którym żadne z powyższych, ale poniższe nie pomaga. Tworzę projekt platformy chmurowej Windows Azure i mam rolę internetową. Rzeczywiście jest przycisk opcji Nie otwieraj strony w projekcie -> {Nazwa projektu} właściwości ... jak zauważył Paweł Krakowiak, ale w moim przypadku nie ma to żadnego efektu. Istnieje jednak główny projekt chmury w eksploratorze rozwiązań i pod nim znajduje się folder Role . Jeśli kliknę prawym przyciskiem myszy swoją rolę internetową w tym folderze i wybiorę Właściwości , otrzymam inny zestaw ustawień, a na karcie Konfiguracja pojawi się flaga Uruchom flagę, po odznaczeniu jej nowe okno przeglądarki nie otwiera się przy uruchomieniu aplikacji.

stepank
źródło
6

Ponieważ nie miałem wspomnianej opcji w moim VS, czyli Visual Studio Enterprise 2017, musiałem poszukać innej opcji.

Oto, co znalazłem:

Przejdź do Narzędzia -> Opcje -> karta Debugowanie (Ogólne) i odznacz „Włącz debugowanie JavaScript dla Asp.Net (Chrome i IE).

wprowadź opis zdjęcia tutaj

Alexa Adrian
źródło
5

Odpowiedź Joao Costa dotyczy również projektów .Net Core 2.

launchsettings.json -> „launchBrowser”: false

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}
chri3g91
źródło
1
To było bardzo pomocne. Warto zauważyć, że ten plik launchSettings.json jest ukryty we właściwościach „Folder” w „Solution Explorer”
netpoetica
2

Przejrzałem odpowiedzi i nie zauważyłem wspomnianego rozwiązania. Jeśli tak, przepraszam. W moim przypadku obecnie korzystam z Visual Studio 2015. W eksploratorze rozwiązań kliknij prawym przyciskiem myszy plik projektu i kliknij właściwości. Przejdź do zakładki Debugowanie, która powinna zawierać informacje o tym, jak uruchamiasz „IIS Express lub Internet (DNX)” dla pierwszych dwóch list rozwijanych, a następnie powinno być zaznaczone pole wyboru „Uruchom URL:”. Odznacz tę opcję, a przeglądarka nie będzie automatycznie uruchamiana za każdym razem, gdy będziesz debugować swoją aplikację. Mam nadzieję, że to komuś pomoże.

Cody Gaut
źródło
2

Chociaż istnieje kilka doskonałych odpowiedzi, od zwykłych podejrzanych do nowszych rozwiązań, chciałbym przedstawić jeszcze jedną kwestię, która dotyczy tego, co powinieneś zrobić, gdy pracujesz nad rozwiązaniem z wieloma projektami .

Zanim doszedłem do tego rozwiązania, patrzyłem na bindingInformationapplicationhost.config rozwiązania, niestrudzenie szukając jakiejkolwiek wskazówki, dlaczego po prostu coś nie działa.

Okazuje się, że prostą rzeczą, którą przeoczyłem, było to, że różne projekty mają również indywidualne ustawienia.

Tak więc, oprócz Project > {Project-Name} Properties... > Web > Start Actionmojego projektu Backend, musiałem także przejść do Website > Start Options... > Start Actionmojego projektu Frontend. Tam wybrałem Don't open a page. Wait for a request from an external applicationi od tamtej pory jestem szczęśliwy!

Ustawienia zaplecza Ustawienia interfejsu użytkownika

Siddhant Rimal
źródło
2

Możesz kliknąć projekt prawym przyciskiem myszy, a następnie wybrać Properties, na Debugkarcie należy odznaczyć launch browserpole wyboru.

Siavash
źródło
0

Możesz teraz także przejść do właściwości sieci, klikając strzałkę rozwijaną obok przycisku Uruchom!

  1. Kliknij przycisk rozwijany obok „Uruchom”
  2. {Nazwa projektu} Właściwości
  3. Kliknij „Web” na liście po lewej stronie
  4. W segmencie „Rozpocznij akcję” kliknij opcję Nie otwieraj strony.

Wszystko gotowe!

PS: To działa dla mnie, jestem na wersji 16.5.5 VS Professional 2019 :)

Lukas Klein Haneveld
źródło