Arrêter Visual Studio de lancer une nouvelle fenêtre de navigateur lors du démarrage du débogage?

340

J'ai déjà une fenêtre ouverte avec le site Web que je débogue. Je n'ai pas besoin de VS pour en lancer un autre à chaque fois que je dois déboguer.

Existe-t-il un moyen d'arrêter ce comportement?

sker
la source
La navigation par onglets est-elle activée? .. Et utilisez-vous IE?
Quintin Robinson

Réponses:

415

Ouvrez les propriétés de votre projet de démarrage ( Projet → {ProjectName} Propriétés ... dans le menu principal ou cliquez avec le bouton droit sur votre projet dans l' Explorateur de solutions et choisissez Propriétés ), puis accédez à l' onglet Web et sous Démarrer l'action, choisissez Ne pas ouvrir une page . Attendre une demande d'une application externe .

Vous pourrez toujours utiliser n'importe quel navigateur (ou Fiddler, peu importe) pour accéder à l'application en cours d'exécution, mais cela n'ouvrira pas automatiquement la fenêtre du navigateur, il démarrera simplement en arrière-plan et attendra toutes les demandes.

Pawel Krakowiak
la source
Cela semble être une très bonne solution, mais tout comme celui de Slace, cela n'arrête pas l'exécution aux points d'arrêt, il dit qu'aucun symbole n'est chargé. Merci quand même.
sker le
9
Cela fait. Je l'utilise pour le débogage tout le temps. Vous devez avoir une mauvaise configuration. Vérifiez que le débogage est activé dans le web.config et que vous exécutez une version de débogage.
Pawel Krakowiak
1
@mjohnsonengr Je jurerais qu'il s'agit d'un paramètre par utilisateur local ... Peut-être que vous avez archivé le fichier .csproj.user (vous ne devriez pas).
Pawel Krakowiak
1
C'est donc [un cadre local]. J'avais précédemment supposé que tous les paramètres du projet dans cette zone étaient stockés dans l'équipe csproj. J'avais précédemment essayé de changer l'URL que le navigateur ouvrirait en modifiant "URL du projet" et j'ai vu qu'elle a été modifiée dans .csproj. En y regardant de plus près, je vois maintenant qu'il y a une coche «Appliquer les paramètres du serveur à tous les utilisateurs» qui contrôle uniquement ce champ. Ma faute.
mjohnsonengr
4
Pour Visual Studio sur Mac, les paramètres comparables se trouvent sous "Projet> Options> Exécuter> Par défaut> ASP.NET Core". Décochez la case "Ouvrir l'URL dans le navigateur Web au démarrage de l'application".
IronRod
135

Pour VS 15.7.1 ToolsOptionsProjects and SolutionsWeb Projects→ décochez Stop debugger when browser window is closed.

Le Memebot
la source
6
VS 15 est Visual Studio 2017 , BTW.
Uwe Keim
2
Le changement suggéré ne fait pas l'objet de la question.
Anatolyevich
1
Fonctionne bien dans VS2019 (16.4.4)
Rory McCrossan
75

Réponse mise à jour pour un projet .NET Core Web Api ...

Faites un clic droit sur votre projet, sélectionnez "Propriétés", allez dans "Déboguer" et décochez la case "Lancer le navigateur" (activée par défaut).

entrez la description de l'image ici

Greg R Taylor
la source
1
@Grey Où cette option "Launch Browser" est-elle présente?
Ayush Singhania
J'ai mis à jour la réponse: vous devez accéder aux propriétés de votre projet pour accéder à l'option.
CennoxX
44

Dans un projet ASP.Net 5, cela peut maintenant être défini pour chaque profil de lancement.

Ouvrez le fichier launchsettings.json sous le dossier Propriétés du projet de démarrage et ajoutez-le "launchBrowser": falseau profil que vous configurez, comme dans:

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

Cette solution de contournement fonctionne pour moi pour VS 2019

Outils => Options

Tapez ensuite Projects and solutions dans la zone de recherche.

Sélectionnez le Web Projects.

Désélectionnez ensuite l'option ci-dessous.

Arrêtez le débogueur lorsque la fenêtre du navigateur est fermée, fermez le navigateur lorsque le débogage s'arrête.

Cela fonctionne pour moi. J'espère que cela vous aidera.

hackerbuddy
la source
1
Merci pour cette astuce.
Win Man
Il ouvre toujours un nouvel onglet à chaque fois que je commence le débogage.
imite le
12

Vous pouvez utiliser la fonction Attacher au processus, plutôt que d'appuyer sur F5.

Cela peut également vous permettre de naviguer dans les sections de travail connues sans ralentir le débogueur VS chargé en dessous.

Aaron Powell
la source
J'ai essayé, mais cela n'arrêtera pas l'exécution lorsqu'il trouvera un point d'arrêt. J'en ai besoin pour m'arrêter aux points d'arrêt, existe-t-il un moyen d'activer cela? Merci.
sker le
1
à condition que vous soyez attaché à un processus qui a chargé exactement les mêmes assemblys qui se trouvent dans le dossier / bin / de l'application, tous les points d'arrêt fonctionneront (oh, et à condition qu'il y ait des fichiers .pdb!)
Aaron Powell
J'ai cherché sur Google comment résoudre ce problème, mais cela semble être un problème. Je ne pouvais pas le faire fonctionner. Je vais utiliser la solution I Have the Hat en attendant. Je vous remercie.
sker
Je peux déboguer en appuyant sur F5 avec l'option "attendre une demande d'une application externe", mais je ne parviens pas à faire fonctionner Attach To Process (attachement à INetMgr.exe). Ne s'arrête jamais à un point d'arrêt. J'utilisais VSCommands dans VS 2013, mais la nouvelle version 2015 de VSCommands ne prend pas encore en charge "Attach to IIS". J'aurais aimé savoir quel était le problème.
ErikE
12

J'ai résolu mon problème en suivant les étapes ci-dessous. Allez dans Outils >> Cliquez sur les options >> cliquez sur les projets et solutions >> projets Web >> décochez l'option "Arrêter le débogage lorsque le navigateur est fermé"entrez la description de l'image ici

DKR
la source
La meilleure solution, aidé pour mon projet de base .net
V319
réponse sous-estimée
Bimal Das
9

Lorsque vous ouvrez un projet Web / d'application pour la première fois, effectuez un Ctrl- F5, qui est le raccourci pour démarrer l'application sans débogage. Ensuite, lorsque vous frappez par la suiteF5 et lancez le débogueur, il utilise cette instance d'IE. Arrêtez puis démarrez le débogage dans Visual Studio au lieu de fermer IE.

Cela fonctionne sur mes machines. J'utilise le serveur Web de développement intégré. Je ne sais pas si cela fait une différence.

Firefox restera également ouvert afin que vous puissiez déboguer dans l'un ou les deux en même temps.

Rex Miller
la source
Hé ça marche! Merci beaucoup. Maintenant, je peux éviter environ 100 fenêtres supplémentaires par session de codage. En outre, lorsque je frappe F5 VS redimensionne ma fenêtre IE. Savez-vous comment puis-je éviter cela?
sker
Désolé sker, je ne connais pas la réponse à cela - cela ne m'arrive pas pour autant de faire ce qui précède, donc il y a probablement une réponse quelque part. Peut-être qu'IE se souvient de sa taille de fenêtre et que cela n'est pas lié au scénario de débogage?
Rex Miller
7

Il semble y avoir un cas dans lequel rien de ce qui précède mais ce qui suit aide. Je développe un projet pour la plateforme cloud Windows Azure et j'ai un rôle web. Il y a en effet un bouton radio Ne pas ouvrir la page dans les propriétés Project -> {Project name} ... comme l'a souligné Pawel Krakowiak, mais cela n'a aucun effet dans mon cas. Cependant, il y a le projet cloud principal dans l'explorateur de solutions et il y a le dossier Roles en dessous. Si je clique avec le bouton droit de la souris sur mon rôle Web dans ce dossier et que je choisis Propriétés , j'obtiens un autre ensemble de paramètres et sur l' onglet Configuration, il y a le navigateur Lancer le drapeau, après l'avoir décoché, une nouvelle fenêtre de navigateur ne sera pas ouverte au démarrage de l'application.

stepank
la source
6

Comme je n'avais pas l'option mentionnée dans mon VS qui est Visual Studio Enterprise 2017, j'ai dû chercher une autre option.

Voici ce que j'ai trouvé:

Allez dans Outils -> Options -> onglet Débogage (Général) et décochez "Activer le débogage JavaScript pour Asp.Net (Chrome et IE).

entrez la description de l'image ici

Alexa Adrian
la source
5

La réponse de Joao Costa est également valable pour les projets .Net core 2.

launchsettings.json -> "launchBrowser": faux

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}
chri3g91
la source
1
C'était super utile. A noter que ce launchSettings.json est caché sous Propriétés "Dossier" dans "Solution Explorer"
netpoetica
2

J'ai regardé les réponses et je n'ai pas vu la solution que j'ai trouvée mentionnée. Si c'était le cas, mes excuses. Dans mon cas, j'utilise actuellement Visual Studio 2015. Dans l'explorateur de solutions, cliquez avec le bouton droit sur le fichier Project et cliquez sur Propriétés. Accédez à l'onglet Débogage et cela devrait avoir des informations sur la façon dont vous lancez "IIS Express ou Web (DNX)" pour les deux premières listes déroulantes, puis il devrait y avoir une case à cocher pour "Launch URL:". Décochez cette option et votre navigateur ne sera pas lancé automatiquement à chaque fois que vous allez déboguer votre application. J'espère que cela aide quelqu'un.

Cody Gaut
la source
2

Bien qu'il existe plusieurs excellentes réponses, allant des suspects habituels aux solutions plus récentes , je voudrais en fournir une autre à la mêlée qui traite de ce que vous devez faire lorsque vous travaillez sur une solution avec plusieurs projets .

Avant d'arriver à cette solution, je continuais à regarder bindingInformationdans le fichier applicationhost.config de la solution, à la recherche inlassable de la raison pour laquelle les choses ne fonctionnaient tout simplement pas.

Il s'avère que la chose simple que j'ai ignorée est que différents projets ont également des paramètres individuels.

Donc, en plus Project > {Project-Name} Properties... > Web > Start Actionde mon projet backend, je devais aussi aller Website > Start Options... > Start Actionsur mon projet frontend. Une fois sur place, j'ai sélectionné Don't open a page. Wait for a request from an external applicationet je suis heureux depuis!

Paramètres du backend Paramètres frontend

Siddhant Rimal
la source
2

Vous pouvez cliquer avec le bouton droit sur votre projet, puis choisir Properties, dans l' Debugonglet, vous devez décocher la launch browsercase.

Siavash
la source
0

Vous pouvez désormais accéder aux propriétés Web en cliquant sur la flèche déroulante à côté du bouton Exécuter!

  1. Cliquez sur le bouton déroulant à côté de "Exécuter"
  2. {Nom du projet} Propriétés
  3. Cliquez sur "Web" dans la liste de gauche
  4. Sous le segment "Démarrer l'action", cliquez sur Ne pas ouvrir de page.

Vous êtes prêt!

PS: Cela fonctionne pour moi, je suis sur la version 16.5.5 de VS Professional 2019 :)

Lukas Klein Haneveld
la source