Visual Studio daran hindern, beim Starten des Debugs ein neues Browserfenster zu starten?

340

Ich habe bereits ein Fenster mit der Website geöffnet, die ich debugge. Ich brauche VS nicht, um jedes Mal, wenn ich debuggen muss, einen neuen für mich zu starten.

Gibt es eine Möglichkeit, dieses Verhalten zu stoppen?

Sker
quelle
Haben Sie das Browsen mit Registerkarten aktiviert? .. Und verwenden Sie den Internet Explorer?
Quintin Robinson

Antworten:

415

Öffnen Sie die Eigenschaften Ihres Startprojekts ( Projekt → {Projektname} Eigenschaften ...) im Hauptmenü oder klicken Sie mit der rechten Maustaste auf Ihr Projekt im Projektmappen- Explorer und wählen Sie Eigenschaften ), navigieren Sie zur Registerkarte Web und wählen Sie unter Aktion starten die Option Keine Seite öffnen . Warten Sie auf eine Anfrage von einer externen Anwendung .

Sie können weiterhin einen beliebigen Browser (oder Fiddler, was auch immer) verwenden, um auf die laufende Anwendung zuzugreifen. Das Browserfenster wird jedoch nicht automatisch geöffnet, sondern nur im Hintergrund gestartet und auf Anforderungen gewartet.

Pawel Krakowiak
quelle
Das scheint eine wirklich gute Lösung zu sein, aber genau wie bei Slace wird die Ausführung an Haltepunkten nicht gestoppt, sondern es werden keine Symbole geladen. Trotzdem danke.
Sker
9
Es tut. Ich benutze es die ganze Zeit zum Debuggen. Sie müssen eine falsche Konfiguration haben. Stellen Sie sicher, dass das Debuggen in der Datei web.config aktiviert ist und dass Sie einen Debug-Build ausführen.
Pawel Krakowiak
1
@mjohnsonengr Ich würde schwören, dass dies eine lokale Benutzereinstellung ist ... Vielleicht haben Sie die Datei .csproj.user eingecheckt (sollten Sie nicht).
Pawel Krakowiak
1
Es ist also [eine lokale Einstellung]. Ich hatte zuvor angenommen, dass alle Projekteinstellungen in diesem Bereich im Team csproj gespeichert waren. Ich hatte zuvor versucht, die URL zu ändern, die der Browser durch Ändern der "Projekt-URL" öffnen würde, und festgestellt, dass sie in .csproj geändert wurde. Bei näherer Betrachtung sehe ich jetzt, dass das Häkchen "Servereinstellungen auf alle Benutzer anwenden" aktiviert ist, das genau dieses Feld steuert. Mein Fehler.
Mjohnsonengr
4
Für Visual Studio unter Mac befinden sich die vergleichbaren Einstellungen unter "Projekt> Optionen> Ausführen> Standard> ASP.NET Core". Deaktivieren Sie die Option "URL im Webbrowser öffnen, wenn die App gestartet wird".
IronRod
134

Für VS 15.7.1 ToolsOptionsProjects and SolutionsWeb Projects→ deaktivieren Stop debugger when browser window is closed.

Der Memebot
quelle
6
VS 15 ist Visual Studio 2017 , übrigens.
Uwe Keim
3
Dies funktioniert auch VS 2019 Vorschau 4.3
KnuturO
2
Vorgeschlagene Änderung macht nicht das, worum es bei der Frage geht.
Anatolyevich
1
Funktioniert gut in VS2019 (16.4.4)
Rory McCrossan
75

Aktualisierte Antwort für ein .NET Core Web Api-Projekt ...

Klicken Sie mit der rechten Maustaste auf Ihr Projekt, wählen Sie "Eigenschaften", gehen Sie zu "Debuggen" und deaktivieren Sie das Kontrollkästchen "Browser starten" (standardmäßig aktiviert).

Geben Sie hier die Bildbeschreibung ein

Greg R Taylor
quelle
1
@Grey Wo ist diese Option "Browser starten" vorhanden?
Ayush Singhania
Ich habe die Antwort aktualisiert: Sie müssen zu den Eigenschaften Ihres Projekts gehen, um zur Option zu gelangen.
CennoxX
44

In einem ASP.Net 5-Projekt kann dies jetzt für jedes Startprofil festgelegt werden.

Öffnen Sie die Datei launchsettings.json im Ordner "Eigenschaften " und fügen "launchBrowser": falseSie sie dem zu konfigurierenden Profil hinzu, z.

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

Diese Problemumgehung funktioniert für mich für VS 2019

Extras => Optionen

Geben Sie dann ein Projects and solutions das Suchfeld ein.

Wähle aus Web Projects .

Deaktivieren Sie dann die unten stehende Option.

Beenden Sie den Debugger, wenn das Browserfenster geschlossen ist. Schließen Sie den Browser, wenn das Debuggen beendet wird.

Das funktioniert bei mir. Hoffe das wird helfen.

Hackerbuddy
quelle
1
Vielen Dank für diesen Tipp.
Win Man
Jedes Mal, wenn ich mit dem Debuggen beginne, wird ein neuer Tab geöffnet.
mimische
12

Sie können die Funktion An Prozess anhängen verwenden, anstatt zu drücken F5.

Auf diese Weise können Sie auch durch bekannte Arbeitsbereiche navigieren, ohne den darunter geladenen VS-Debugger zu verlangsamen.

Aaron Powell
quelle
Ich habe das versucht, aber die Ausführung wird nicht gestoppt, wenn ein Haltepunkt gefunden wird. Ich brauche es, um an Haltepunkten anzuhalten. Gibt es eine Möglichkeit, dies zu aktivieren? Vielen Dank.
Sker
1
vorausgesetzt, dass Sie an einen Prozess angehängt sind, der genau die gleichen Assemblys geladen hat, die sich im Ordner / bin / der Anwendung befinden, funktionieren alle Haltepunkte (oh, und vorausgesetzt, es gibt .pdb-Dateien!)
Aaron Powell
Ich habe gegoogelt, wie man das behebt, aber es scheint eine Menge Ärger zu geben. Ich konnte es nicht zum Laufen bringen. Ich werde in der Zwischenzeit die Lösung von I Have the Hat verwenden. Vielen Dank.
Sker
Ich kann debuggen, indem ich F5 mit der Option "Warten auf eine Anfrage von einer externen Anwendung" drücke, aber ich kann Attach To Process nicht zum Laufen bringen (Anhängen an INetMgr.exe). Hält niemals an einem Haltepunkt an. Ich habe VSCommands in VS 2013 verwendet, aber die neue Version 2015 von VSCommands unterstützt "An IIS anhängen" noch nicht. Ich wünschte, ich wüsste, was das Problem war.
ErikE
12

Ich habe mein Problem durch Befolgen der folgenden Schritte gelöst. Gehen Sie zu Extras >> Klicken Sie auf Optionen >> Klicken Sie auf Projekte und Lösungen >> Webprojekte >> Deaktivieren Sie die Option "Debuggen beenden, wenn der Browser geschlossen ist"Geben Sie hier die Bildbeschreibung ein

DKR
quelle
Die beste Lösung, die für mein .net-Kernprojekt geholfen hat
V319
unterschätzte Antwort
Bimal Das
9

Wenn Sie zum ersten Mal ein Web- / App-Projekt öffnen, führen Sie ein Ctrl- aus F5. Dies ist die Verknüpfung zum Starten der Anwendung ohne Debugging. Dann, wenn Sie anschließend schlagenF5 den Debugger und starten, wird diese Instanz des IE verwendet. Stoppen Sie dann das Debuggen in Visual Studio und starten Sie es, anstatt den IE zu schließen.

Es funktioniert auf meinen Maschinen. Ich verwende den eingebauten Dev-Webserver. Ich weiß nicht, ob das einen Unterschied macht.

Firefox bleibt auch geöffnet, sodass Sie eines oder beide gleichzeitig debuggen können.

Rex Miller
quelle
Hey das funktioniert! Vielen Dank. Jetzt kann ich ungefähr 100 zusätzliche Fenster pro Codierungssitzung vermeiden. Wenn ich F5 VS drücke, ändert sich auch die Größe meines IE-Fensters. Wissen Sie, wie ich das vermeiden kann?
Sker
Sorry Sker, ich kenne die Antwort darauf nicht - es passiert mir jedoch nicht, wenn ich das oben genannte mache, also gibt es wahrscheinlich irgendwo eine Antwort. Vielleicht erinnert sich der IE an seine Fenstergröße und hat nichts mit dem Debugging-Szenario zu tun?
Rex Miller
7

Es scheint einen Fall zu geben, in dem keines der oben genannten, aber das Folgende hilft. Ich entwickle ein Projekt für die Windows Azure-Cloudplattform und habe eine Webrolle. Es gibt zwar ein Optionsfeld Seite in den Eigenschaften von Projekt -> {Projektname} nicht öffnen ... wie von Pawel Krakowiak hervorgehoben, aber es hat in meinem Fall keinerlei Auswirkungen. Es gibt jedoch das Haupt-Cloud-Projekt im Solution Explorer und den Rollenordner darunter. Wenn ich mit der rechten Maustaste auf meine Webrolle in diesem Ordner klicke und Eigenschaften wähle , erhalte ich weitere Einstellungen. Auf der Registerkarte Konfiguration befindet sich das Flag Browser starten für. Nach dem Deaktivieren wird beim Start der Anwendung kein neues Browserfenster geöffnet.

stepank
quelle
6

Da ich die erwähnte Option in meinem VS, Visual Studio Enterprise 2017, nicht hatte, musste ich nach einer anderen Option suchen.

Folgendes habe ich gefunden:

Gehen Sie zu Extras -> Optionen -> Registerkarte Debugging (Allgemein) und deaktivieren Sie "JavaScript-Debugging für Asp.Net (Chrome und IE) aktivieren".

Geben Sie hier die Bildbeschreibung ein

Alexa Adrian
quelle
Noch gültig für 2019, danke.
Emanuel
5

Die Antwort von Joao Costa gilt auch für .Net Core 2-Projekte.

launchsettings.json -> "launchBrowser": false

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}
chri3g91
quelle
1
Das war super hilfreich. Es ist erwähnenswert, dass diese launchSettings.json unter Eigenschaften "Ordner" im "
Projektmappen-
2

Ich habe mir die Antworten angesehen und die erwähnte Lösung nicht gefunden. Wenn ja, entschuldige ich mich. In meinem Fall wird derzeit Visual Studio 2015 verwendet. Klicken Sie im Lösungs-Explorer mit der rechten Maustaste auf die Projektdatei und klicken Sie auf Eigenschaften. Gehen Sie zur Registerkarte Debug, und diese sollte Informationen darüber enthalten, wie Sie "IIS Express oder Web (DNX)" für die ersten beiden Dropdown-Listen starten. Anschließend sollte ein Kontrollkästchen für "URL starten:" vorhanden sein. Deaktivieren Sie diese Option, und Ihr Browser wird nicht jedes Mal automatisch gestartet, wenn Sie Ihre Anwendung debuggen. Hoffe das hilft jemandem.

Cody Gaut
quelle
2

Obwohl es mehrere ausgezeichnete Antworten gibt, die von üblichen Verdächtigen bis zu neueren Lösungen reichen , möchte ich dem Kampf noch eine weitere geben, die beschreibt, was Sie tun sollten, wenn Sie an einer Lösung mit mehreren Projekten arbeiten .

Bevor ich zu dieser Lösung kam, suchte ich bindingInformationin der applicationhost.config der Lösung nach einem Hinweis, warum die Dinge einfach nicht funktionierten.

Es stellte sich heraus, dass ich einfach übersehen habe, dass verschiedene Projekte auch individuelle Einstellungen haben.

Also musste Project > {Project-Name} Properties... > Web > Start Actionich neben meinem Backend-Projekt auch zu Website > Start Options... > Start Actionmeinem Frontend-Projekt gehen. Dort angekommen habe ich ausgewählt Don't open a page. Wait for a request from an external applicationund bin seitdem glücklich!

Backend-Einstellungen Frontend-Einstellungen

Siddhant Rimal
quelle
2

Sie können mit der rechten Maustaste auf Ihr Projekt klicken und dann Propertiesauf der DebugRegisterkarte das launch browserKontrollkästchen deaktivieren .

Siavash
quelle
0

Sie können jetzt auch zu den Web-Eigenschaften gelangen, indem Sie auf den Dropdown-Pfeil neben der Schaltfläche Ausführen klicken!

  1. Klicken Sie auf die Dropdown-Schaltfläche neben "Ausführen".
  2. {Projektname} Eigenschaften
  3. Klicken Sie in der Liste links auf "Web"
  4. Klicken Sie im Segment "Aktion starten" auf Keine Seite öffnen.

Du bist fertig!

PS: Das funktioniert bei mir, ich bin auf Version 16.5.5 von VS Professional 2019 :)

Lukas Klein Haneveld
quelle