¿Evitar que Visual Studio inicie una nueva ventana del navegador al iniciar la depuración?

340

Ya tengo una ventana abierta con el sitio web que estoy depurando. No necesito VS para lanzar otro cada vez que necesito depurar.

¿Hay alguna manera de detener este comportamiento?

esquiador
fuente
¿Tiene habilitada la navegación por pestañas? .. ¿Y está utilizando IE?
Quintin Robinson el

Respuestas:

415

Abra las propiedades de su proyecto de inicio ( Proyecto → {Nombre del proyecto} Propiedades ... desde el menú principal o haga clic con el botón derecho en su proyecto en el Explorador de soluciones y elija Propiedades ), luego navegue a la pestaña Web y en Iniciar acción elija No abrir una página . Espere una solicitud de una aplicación externa .

Aún podrá usar cualquier navegador (o Fiddler, lo que sea) para acceder a la aplicación en ejecución, pero no abrirá la ventana del navegador automáticamente, solo comenzará en segundo plano y esperará cualquier solicitud.

Pawel Krakowiak
fuente
Parece una solución realmente buena, pero al igual que la de Slace, no detiene la ejecución en los puntos de interrupción, dice que no se cargan símbolos. Gracias sin embargo.
sker
99
Lo hace. Lo uso para depurar todo el tiempo. Debe tener una configuración incorrecta. Verifique que tenga habilitada la depuración en web.config y que esté ejecutando una compilación de depuración.
Pawel Krakowiak
1
@mjohnsonengr Juraría que esta es una configuración por usuario que es local ... Tal vez usted haya registrado el archivo .csproj.user (no debería).
Pawel Krakowiak
1
Entonces es [un entorno local]. Previamente asumí que todas las configuraciones del proyecto en esa área estaban almacenadas en el equipo csproj. Previamente intenté cambiar la URL que abriría el navegador modificando la "URL del proyecto" y vi que se modificó en .csproj. Tras una inspección más cercana, ahora veo que hay una marca de verificación "Aplicar la configuración del servidor a todos los usuarios" que controla solo ese campo. Culpa mía.
mjohnsonengr
44
Para Visual Studio en Mac, la configuración comparable se encuentra en "Proyecto> Opciones> Ejecutar> Predeterminado> ASP.NET Core". Desmarca la opción "Abrir URL en el navegador web cuando se inicie la aplicación".
IronRod
134

Para VS 15.7.1 ToolsOptionsProjects and SolutionsWeb Projects→ desmarque Stop debugger when browser window is closed.

El memebot
fuente
66
VS 15 es Visual Studio 2017 , por cierto.
Uwe Keim
3
Esto también funciona VS 2019 Preview 4.3
KnuturO
2
El cambio sugerido no hace de qué se trata la pregunta.
Anatolyevich
1
Funciona bien en VS2019 (16.4.4)
Rory McCrossan
75

Respuesta actualizada para un proyecto .NET Core Web Api ...

Haga clic derecho en su proyecto, seleccione "Propiedades", vaya a "Depurar" y desactive la casilla de verificación "Iniciar navegador" (habilitada de forma predeterminada).

ingrese la descripción de la imagen aquí

Greg R Taylor
fuente
1
@Grey ¿Dónde está presente esta opción "Iniciar navegador"?
Ayush Singhania
He actualizado la respuesta: tienes que ir a las propiedades de tu proyecto para acceder a la opción.
CennoxX
44

En un proyecto ASP.Net 5, esto ahora se puede configurar para cada perfil de inicio.

Abra el archivo launchsettings.json en la carpeta Propiedades del proyecto de inicio y agréguelo "launchBrowser": falseal perfil que está configurando, como en:

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

Esta solución alternativa me funciona para VS 2019

Herramientas => Opciones

Luego escriba Projects and solutionsen el cuadro de búsqueda.

Selecciona el Web Projects.

Luego, anule la selección de la opción a continuación.

Detenga el depurador cuando la ventana del navegador esté cerrada, cierre el navegador cuando se detenga la depuración.

Esto funciona para mi. Espero que esto ayude.

hackerbuddy
fuente
1
Gracias por este consejo
Win Man
Todavía abre una nueva pestaña cada vez que comienzo a depurar.
imitar el
12

Puede usar la función Adjuntar al proceso, en lugar de presionar F5 .

Esto también puede permitirle navegar a través de secciones de trabajo conocidas sin la desaceleración del depurador VS cargado debajo.

Aaron Powell
fuente
He intentado eso, pero no detendrá la ejecución cuando encuentre un punto de interrupción. Necesito que se detenga en puntos de interrupción, ¿hay alguna manera de habilitar eso? Gracias.
sker
1
siempre que esté conectado a un proceso que haya cargado exactamente los mismos ensamblajes que están en la carpeta / bin / de la aplicación, todos los puntos de interrupción funcionarán (¡oh, y siempre que haya archivos .pdb!)
Aaron Powell el
Busqué en Google cómo solucionarlo, pero parece que hay muchos problemas. No pude hacerlo funcionar. Mientras tanto, usaré la solución I Have the Hat. Gracias.
sker
Puedo depurar presionando F5 con la opción "esperar una solicitud de una aplicación externa", pero no puedo hacer que Adjuntar al proceso funcione (adjuntar a INetMgr.exe). Nunca se detiene en un punto de interrupción. Estaba usando VSCommands en VS 2013, pero la nueva versión 2015 de VSCommands aún no admite "Adjuntar a IIS". Ojalá supiera cuál era el problema.
ErikE
12

He resuelto mi problema siguiendo los pasos a continuación. Vaya a Herramientas >> Haga clic en opciones >> haga clic en proyectos y soluciones >> proyectos web >> desactive la opción "Detener depuración cuando el navegador está cerrado"ingrese la descripción de la imagen aquí

DKR
fuente
La mejor solución, ayudada para mi proyecto principal .net
V319
respuesta subestimada
Bimal Das
9

Cuando abra por primera vez un proyecto web / de aplicación, haga un Ctrl- F5, que es el acceso directo para iniciar la aplicación sin depurar. Luego, cuando golpee F5y ejecute el depurador, usará esa instancia de IE. Luego, pare e inicie la depuración en Visual Studio en lugar de cerrar IE.

Funciona en mis máquinas. Estoy usando el servidor web de desarrollo incorporado. No sé si eso hace la diferencia.

Firefox también permanecerá abierto para que pueda depurar uno o ambos al mismo tiempo.

Rex Miller
fuente
Hey eso funciona! Muchas gracias. Ahora puedo evitar alrededor de 100 ventanas adicionales por sesión de codificación. Además, cuando presiono F5 VS cambia el tamaño de mi ventana de IE. ¿Sabes cómo puedo evitar eso?
sker
Lo siento, sker, no sé la respuesta a eso, aunque no sucede que haga lo anterior, así que probablemente haya una respuesta en alguna parte. ¿Quizás IE está recordando el tamaño de su ventana y no está relacionado con el escenario de depuración?
Rex Miller, el
7

Parece que hay un caso en el que ninguno de los anteriores, pero el siguiente ayuda. Estoy desarrollando un proyecto para la plataforma en la nube de Windows Azure y tengo un rol web. De hecho, hay un botón de radio No abrir página en Proyecto -> {Nombre del proyecto} propiedades ... como señaló Pawel Krakowiak, pero en mi caso no tiene ningún efecto. Sin embargo, existe el proyecto principal en la nube en el explorador de soluciones y hay una carpeta de Roles debajo. Si hago clic con el botón derecho en mi rol web en esta carpeta y elijo Propiedades , obtengo otro conjunto de configuraciones y en la pestaña Configuración aparece el navegador Iniciar para el indicador, después de desmarcarlo no se abre una nueva ventana del navegador al iniciar la aplicación.

stepank
fuente
6

Como no tenía la opción mencionada en mi VS, que es Visual Studio Enterprise 2017, tuve que buscar alguna otra opción.

Aquí está lo que he encontrado:

Vaya a Herramientas -> Opciones -> pestaña Depuración (General) y desactive "Habilitar la depuración de JavaScript para Asp.Net (Chrome e IE).

ingrese la descripción de la imagen aquí

Alexa Adrian
fuente
Todavía válido para 2019, gracias.
Emanuel
5

La respuesta de Joao Costa también es válida para los proyectos .Net core 2.

launchsettings.json -> "launchBrowser": falso

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}
chri3g91
fuente
1
Esto fue súper útil. Vale la pena señalar que este launchSettings.json está oculto en Propiedades "Carpeta" en "Explorador de soluciones"
netpoetica
2

Revisé las respuestas y no vi la solución que encontré mencionada. Si fue así, mis disculpas. En mi caso, actualmente uso Visual Studio 2015. En el explorador de soluciones, haga clic derecho en el archivo Proyecto y haga clic en propiedades. Vaya a la pestaña Depurar y esto debería tener información sobre cómo está iniciando "IIS Express o Web (DNX)" para los dos primeros menús desplegables, y luego debería haber una casilla de verificación para "Iniciar URL:". Desactive esta opción y su navegador no se iniciará automáticamente cada vez que vaya a depurar su aplicación. Espero que esto ayude a alguien.

Cody Gaut
fuente
2

Si bien hay varias respuestas excelentes, que van desde los sospechosos habituales hasta las soluciones más nuevas , me gustaría ofrecer una más a la refriega que aborda lo que debe hacer cuando está trabajando en una solución con múltiples proyectos .

Antes de llegar a esta solución, seguí buscando bindingInformationen la aplicación host.config de la solución, buscando incansablemente cualquier indicio de por qué las cosas simplemente no funcionaban.

Resulta que lo simple que pasé por alto fue que los diferentes proyectos también tienen configuraciones individuales.

Entonces, además Project > {Project-Name} Properties... > Web > Start Actionde mi Proyecto Backend, también tuve que Ir a Website > Start Options... > Start Actionmi Proyecto Frontend. Una vez allí, ¡seleccioné Don't open a page. Wait for a request from an external applicationy he sido feliz desde entonces!

Configuraciones de backend Configuraciones frontend

Siddhant Rimal
fuente
2

Puede hacer clic derecho en su proyecto, luego elegir Properties, en la Debugpestaña debe desmarcar la launch browsercasilla de verificación.

Siavash
fuente
0

¡Ahora también puede acceder a las propiedades web haciendo clic en la flecha desplegable junto al botón Ejecutar!

  1. Haga clic en el botón desplegable junto a "Ejecutar"
  2. {Nombre del proyecto} Propiedades
  3. Haga clic en "Web" en la lista de la izquierda.
  4. En el segmento "Iniciar acción", haga clic en No abrir una página.

Estás listo!

PD: Esto funciona para mí, estoy en la versión 16.5.5 de VS Professional 2019 :)

Lukas Klein Haneveld
fuente