Come interrompere la chiusura automatica del browser quando si interrompe il debug su VS 2017


338

Sto provando il nuovo VS 2017 RC e mi chiedo se qualcuno sa come ripristinare il precedente comportamento di debug

In VS 2015 è andata così:

Premi avvia il debug

  • Il sito Web si apre in una nuova scheda di Chrome
  • Premi stop debugging
  • Il sito Web è ancora aperto e il sito è ancora in esecuzione / attivo

Ora nel 2017:

  • Premi avvia il debug
  • Il sito Web si apre in una nuova finestra che non può essere ancorata ad altre finestre / schede di Chrome
  • Premi stop debugging
  • La finestra del sito Web / Chrome si chiude, non è possibile continuare a utilizzare il sito a meno che non vada manualmente alla finestra localhost in Chrome

Nel 2017 è possibile tornare allo stile 2015? Quindi la finestra di Chrome / Sito Web può agganciarsi ad altre finestre / schede di Chrome e rimane aperta dopo l'interruzione del debug?

Inoltre, trovo frustrante l'uso della nuova finestra di Chrome, in quanto sembra non avere cronologia / contenuti disponibili. Ad esempio, non riesco a completare automaticamente i moduli o gli URL, il che è molto fastidioso quando provo a provare un modulo

Risposte:


585

Visual Studio 2017 versione 15.7 e successive e Visual Studio 2019 hanno cambiato di nuovo le cose.

La disabilitazione delle seguenti caselle di controllo consente di mantenere aperto il browser (non si chiude dopo l'interruzione del debug) e apre un'altra scheda (anziché un'altra finestra):

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Strumenti> Opzioni> Debug> Generale

  • Disabilitare "Abilita debug JavaScript per ASP.NET (Chrome, Edge e IE)".

Strumenti> Opzioni> Progetti e soluzioni> Progetti Web

  • ( Visual Studio 2017 ) Disabilita "Ferma il debugger alla chiusura della finestra del browser".
  • ( Visual Studio 2019 ) Disabilita "Ferma il debugger quando la finestra del browser è chiusa, chiudi il browser quando il debug si arresta".

Vedi anche questo report relativo ai bug nella Microsoft Developer Community.
Uwe Keim,

112
Chi diavolo ha aggiunto questa funzione e ha pensato sì, perfetto. È così noioso!
Jon,

2
Fornisci anche una soluzione di testo per quando l'immagine viene rimossa, ecc.
mohas

18
Per VS 2019: se qualcuno sta cercando l'ultima opzione (Stop Debugger quando la finestra del browser è chiusa), l'hanno spostata in Strumenti> Opzioni> Progetti e soluzioni> Progetti Web> Ferma debugger quando la finestra del browser è chiusa, chiudi il browser durante il debug si ferma . Vedi immagine
jag

1
@jag Grazie, l'ho incluso nelle istruzioni.
Jerone

83

Il motivo del cambiamento nel comportamento è dovuto al supporto di VS 2017 per il debug di JavaScript / TypeScript in esecuzione in Chrome. Vedi l'annuncio qui https://blogs.msdn.microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in-google-chrome/

Per tornare al comportamento del 2015 in cui Chrome non è chiuso dal debugger, disabilitare il debugger di script IE / Chrome in Strumenti -> Opzioni in questo modo:

Opzioni di debugger


8
Questo non ha funzionato per me fino a quando non ho disattivato "Abilita modifica e continua" ( stackoverflow.com/questions/20831676/… ). Penso che entrambi i cambiamenti insieme siano la soluzione completa.
JoaoRibeiro

4
non funziona in vs2017, anche dopo aver disabilitatoEdit and Continue
ahmad molaie il

24

Per quelli di voi che hanno effettuato l'aggiornamento a Visual Studio 2019, quella configurazione è ora in Strumenti> Opzioni ...

E poi nella finestra di dialogo delle opzioni (vedi immagine sotto) Progetti e soluzioni> Progetto Web:
deselezionaStop debugger when broswer window is closed, close browser when debugging

inserisci qui la descrizione dell'immagine


Deselezionare solo questa opzione non è sufficiente. Quando si chiude il browser, anche il debugger si interrompe.
FrenkyB,

@FrenkyB Sto solo immaginando che sia necessario chiudere e riaprire tutte le istanze di Visual Studio poiché il debugger vs non si interrompe quando chiudo il browser.
Jean-Sébastien Gervais,

19

Sto scrivendo questa risposta poiché penso che i precedenti coprano solo metà del problema.

La prima cosa che vuoi è sbarazzarti di questo fastidioso "esegui Chrome come una nuova finestra e chiudi automaticamente quando si interrompe il debug"

Strumenti → Opzioni → deseleziona Abilita debug JavaScript per ASP.NET

Dopo averlo fatto, quando si avvia il debug di Chrome si apre una nuova scheda, dopo aver interrotto la scheda non viene chiusa ma il sito Web di aggiornamento mostra una schermata bianca

di nuovo in Strumenti → Opzioni

deseleziona Abilita Modifica e Continua

Da adesso hai ripreso il tuo vecchio comportamento.

Finestra delle opzioni


3
con VS 15.7.0 sono necessarie entrambe le opzioni (prima che la risposta con l'accusa fosse sufficiente)
Stefan

1
@Stefan è corretto; ora hai bisogno di entrambe le opzioni disabilitate. Ma in precedenza apriva una scheda e ora apre un'altra istanza del browser selezionato.
Jerone,

ma ho bisogno di modificare e continuare per il codice lato server, perché sono intrecciati?
etereo

La risposta di @ethermal jerone (Web Projects -> Stop Debugger deselezionato) funziona senza disabilitare Modifica e Continua.
Steve Greene,

2

Vai su Strumenti -> Opzioni e cerca " Interrompi debugger ". Quindi selezionare il nodo Progetti Web in Progetti e soluzioni. Deseleziona " Interrompi debugger quando la finestra del browser è chiusa ". Prima di questa opzione dovresti applicare il suggerimento di @jerone .

PS: questa opzione può essere utilizzata dopo VS versione 15.7


1

Esistono due modi per farlo:

  1. Avviare senza eseguire il debug premendo ctrl + f5 o
  2. Avviare con il debug (premendo f5) e quindi andare al menu Debug e premere "Stacca tutto"

Spero che aiuti.


6
Non credo che nessuna delle due risposte affronti davvero questo terribile problema del flusso di lavoro / debug del 2017. Il punto è che nel 2015 è possibile avviare un'istanza di Chrome esistente e ancora eseguire il debug del codice del server in VS. Non sembra esserci un modo ragionevole per farlo con il 2017. Non dovresti dover "Staccare tutto" ogni volta che avvii la tua app e chiudere un'istanza aggiuntiva di Chrome che si apre, ecc. Non dare a Michael B. un momento difficile, solo molto seccato con MS su questo problema. Spero che ci sia una soluzione migliore per tornare al flusso di lavoro di debug del 2015 che abbia senso.
Austin Harris,

4
@Austin, grazie per questo feedback. Lo passerò al team (lavoro su Visual Studio presso Microsoft)
Michael Braude,

3
@MichaelBraude sì, questo è un grande passo indietro nella produttività.
Spongman,

1
Come dice Mads, puoi disabilitare il nuovo comportamento se non ti piace. Grazie per questo feedback!
Michael Braude,

2
sì, ma farlo disabilita anche il debugger di Chrome.
Spongman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.