Impedire a Visual Studio di avviare una nuova finestra del browser all'avvio del debug?


340

Ho già una finestra aperta con il sito Web di cui sto eseguendo il debug. Non ho bisogno di VS per lanciarne un altro ogni volta che devo eseguire il debug.

C'è un modo per fermare questo comportamento?


Hai la navigazione a schede abilitata? .. E stai usando IE?
Quintin Robinson,

Risposte:


415

Apri le proprietà del tuo progetto di avvio ( Progetto → Proprietà {Nome progetto} ... dal menu principale o fai clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegli Proprietà ), quindi vai alla scheda Web e in Avvia azione scegli Non aprire una pagina . Attendere una richiesta da un'applicazione esterna .

Sarai comunque in grado di utilizzare qualsiasi browser (o Fiddler, qualunque sia) per accedere all'applicazione in esecuzione, ma non aprirà automaticamente la finestra del browser, inizierà semplicemente in background e attenderà qualsiasi richiesta.


Sembra una soluzione davvero buona, ma proprio come quella di Slace, non ferma l'esecuzione ai punti di interruzione, dice che non sono caricati simboli. Grazie comunque.
sciatore

9
Lo fa. Lo uso sempre per il debug. Devi avere una configurazione errata. Controlla di aver abilitato il debug in web.config e di eseguire una build di debug.
Pawel Krakowiak,

1
@mjohnsonengr Giuro che si tratta di un'impostazione per utente locale ... Forse hai il file .csproj.user registrato (non dovresti).
Pawel Krakowiak,

1
Quindi è [un'impostazione locale]. In precedenza avevo supposto che tutte le impostazioni del progetto in quell'area fossero memorizzate nel team csproj. In precedenza avevo provato a cambiare l'URL che il browser avrebbe aperto modificando "Project URL" e avevo visto che era stato modificato in .csproj. A un esame più attento, ora vedo che c'è un segno di spunta "Applica le impostazioni del server a tutti gli utenti" che controlla proprio quel campo. Colpa mia.
mjohnsonengr,

4
Per Visual Studio su Mac, le impostazioni comparabili si trovano in "Progetto> Opzioni> Esegui> Predefinito> ASP.NET Core". Deseleziona "Apri URL nel browser Web all'avvio dell'app".
IronRod

135

Per VS 15.7.1 ToolsOptionsProjects and SolutionsWeb Projects→ deselezionare Stop debugger when browser window is closed.


6
VS 15 è Visual Studio 2017 , BTW.
Uwe Keim,

2
La modifica suggerita non fa la domanda.
Anatolyevich,

1
Funziona bene in VS2019 (16.4.4)
Rory McCrossan il

75

Risposta aggiornata per un progetto .NET Core Web Api ...

Fai clic con il pulsante destro del mouse sul progetto, seleziona "Proprietà", vai su "Debug" e deseleziona la casella di controllo "Avvia browser" (abilitato per impostazione predefinita).

inserisci qui la descrizione dell'immagine


1
@Grigio Dov'è presente l'opzione "Avvia browser"?
Ayush Singhania,

Ho aggiornato la risposta: devi andare alle proprietà del tuo progetto per arrivare all'opzione.
CennoxX,

44

In un progetto ASP.Net 5 questo può ora essere impostato per ciascun profilo di avvio.

Aprire il file launchsettings.json nella cartella Proprietà progetto di avvio e aggiungere "launchBrowser": falseal profilo che si sta configurando, ad esempio in:

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}

13

Questa soluzione alternativa funziona per me per VS 2019

Strumenti => Opzioni

Quindi digitare Projects and solutionsnella casella di ricerca.

Seleziona il Web Projects.

Quindi deseleziona l'opzione qui sotto.

Arresta il debugger quando la finestra del browser è chiusa, chiudi il browser quando il debug si interrompe.

Questo funziona per me. Spero che questo possa aiutare.


1
Grazie per il consiglio.
Vinci Man

Si apre ancora una nuova scheda ogni volta che inizio il debug.
imita il

12

È possibile utilizzare la funzione Allega al processo, anziché premere F5.

Ciò può anche consentire di navigare attraverso sezioni di lavoro note senza il rallentamento del debugger VS caricato al di sotto.


Ci ho provato, ma non fermerà l'esecuzione quando trova un punto di interruzione. Ho bisogno che si fermi ai punti di interruzione, c'è un modo per abilitarlo? Grazie.
sciatore

1
purché sia ​​collegato a un processo che ha caricato gli stessi identici assembly che si trovano nella cartella / bin / dell'applicazione, tutti i punti di interruzione funzioneranno (oh, e purché ci siano file .pdb!)
Aaron Powell

Ho cercato su Google come risolverlo, ma sembra un sacco di problemi. Non riuscivo a farlo funzionare. Nel frattempo userò I have the Hat's solution. Grazie.
sciatore

Posso eseguire il debug premendo F5 con l'opzione "attendi una richiesta da un'applicazione esterna", ma non riesco a far funzionare Allega al processo (collegandomi a INetMgr.exe). Non si ferma mai a un punto di interruzione. Stavo usando VSCommands in VS 2013, ma la nuova versione 2015 di VSCommands non supporta ancora "Collega a IIS". Vorrei sapere qual era il problema.
ErikE,

12

Ho risolto il mio problema seguendo i passaggi seguenti. Vai su Strumenti >> Fai clic su opzioni >> fai clic su progetti e soluzioni >> progetti Web >> deseleziona l'opzione "Interrompi debug alla chiusura del browser"inserisci qui la descrizione dell'immagine


La migliore soluzione, aiutata per il mio progetto core .net
V319

risposta sottovalutata
Bimal Das

9

Quando si apre per la prima volta un progetto Web / app, eseguire un Ctrl- F5, che è il collegamento per l'avvio dell'applicazione senza debug. Quindi quando successivamente premi F5e avvii il debugger, utilizzerà quell'istanza di IE. Quindi interrompere e avviare il debug in Visual Studio invece di chiudere IE.

Funziona sulle mie macchine. Sto usando il web server di sviluppo incorporato. Non so se questo fa la differenza.

Anche Firefox rimarrà aperto in modo da poter eseguire il debug in uno o entrambi contemporaneamente.


Ehi, funziona! Molte grazie. Ora posso evitare circa 100 finestre extra per sessione di codifica. Inoltre, quando premo F5 VS ridimensiona la mia finestra IE. Sai come posso evitarlo?
sciatore

Mi dispiace sker, non conosco la risposta a questo - non succede per me facendo quanto sopra, quindi probabilmente c'è una risposta da qualche parte. Forse IE sta ricordando le sue dimensioni della finestra ed è estraneo allo scenario di debug?
Rex Miller,

7

Sembra esserci un caso in cui nessuno dei precedenti, ma quanto segue aiuta. Sto sviluppando un progetto per la piattaforma cloud di Windows Azure e ho un ruolo Web. C'è davvero un pulsante di opzione Non aprire la pagina in Progetto -> Proprietà {Nome progetto} ... come è stato sottolineato da Pawel Krakowiak, ma nel mio caso non ha alcun effetto. Tuttavia, esiste il progetto cloud principale in Esplora soluzioni e sotto la cartella Ruoli . Se faccio clic con il pulsante destro del mouse sul mio ruolo Web in questa cartella e scelgo Proprietà , ottengo un altro set di impostazioni e nella scheda Configurazione c'è il browser Avvia per flag, dopo averlo deselezionato non viene aperta una nuova finestra del browser all'avvio dell'applicazione.


6

Dato che non avevo l'opzione menzionata nel mio VS, che è Visual Studio Enterprise 2017, ho dovuto cercare un'altra opzione.

Ecco cosa ho trovato:

Vai su Strumenti -> Opzioni -> scheda Debug (Generale) e deseleziona "Abilita debug JavaScript per Asp.Net (Chrome e IE).

inserisci qui la descrizione dell'immagine


5

La risposta di Joao Costa vale anche per i progetti .Net core 2.

launchsettings.json -> "launchBrowser": false

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}

1
Questo è stato super utile. Vale la pena notare che questo launchSettings.json è nascosto in Proprietà "Cartella" in "Esplora soluzioni"
netpoetica

2

Ho controllato le risposte e non ho visto la soluzione che ho trovato menzionata. Se lo fosse, le mie scuse. Nel mio caso, attualmente utilizzo Visual Studio 2015. In Esplora soluzioni, fai clic con il pulsante destro del mouse sul file Progetto e fai clic su Proprietà. Vai alla scheda Debug e questo dovrebbe avere informazioni su come stai lanciando "IIS Express o Web (DNX)" per i primi due menu a discesa, e quindi dovrebbe essere presente una casella di spunta per "Avvia URL:". Deseleziona questa opzione e il tuo browser non verrà avviato automaticamente ogni volta che vai al debug della tua applicazione. Spero che questo aiuti qualcuno.


2

Mentre ci sono diverse risposte eccellenti, che vanno dai soliti sospetti alle soluzioni più recenti , vorrei fornirne un'altra alla mischia che affronta ciò che dovresti fare quando lavori su una soluzione con più progetti .

Prima di arrivare a questa soluzione, ho continuato a cercare bindingInformationin applicationhost.config della soluzione, cercando instancabilmente qualsiasi suggerimento sul perché le cose semplicemente non funzionassero.

Si scopre, il semplice cosa che ho trascurato era che anche diversi progetti hanno impostazioni individuali.

Quindi, oltre Project > {Project-Name} Properties... > Web > Start Actional mio progetto di backend, ho anche dovuto andare al Website > Start Options... > Start Actionmio progetto di frontend. Una volta lì, ho selezionato Don't open a page. Wait for a request from an external applicatione sono stato felice da allora!

Impostazioni back-end Impostazioni frontend


2

È possibile fare clic con il pulsante destro del mouse sul progetto, quindi scegliere Properties, nella Debugscheda, deselezionare la launch browsercasella di controllo.



0

Ora puoi anche accedere alle proprietà Web facendo clic sulla freccia a discesa accanto al pulsante Esegui!

  1. Fai clic sul pulsante a discesa accanto a "Esegui"
  2. {Nome progetto} Proprietà
  3. Fai clic su "Web" nell'elenco a sinistra
  4. Nel segmento "Avvia azione", fai clic su Non aprire una pagina.

Sei pronto!

PS: Questo funziona per me, sono sulla versione 16.5.5 di VS Professional 2019 :)

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.