ChatGPT解决这个技术问题 Extra ChatGPT

Stop Visual Studio from launching a new browser window when starting debug?

I already have a window open with the web site I'm debugging. I don't need VS to launch another one for me every time I need to debug.

Is there a way to stop this behavior?

Do you have tabbed browsing enabled?.. And are you using IE?
You want to disable the Browser Link Feature

U
Uwe Keim

Open your startup project's properties (Project → {ProjectName} Properties... from the main menu or right click your project in the Solution Explorer and choose Properties), then navigate to the Web tab and under Start Action choose Don't open a page. Wait for a request from an external application.

You will still be able to use any browser (or Fiddler, whatever) to access the running application, but it won't open the browser window automatically, it'll just start in the background and wait for any requests.


It does. I use it for debugging all the time. You must have wrong configuration. Double check that you have debugging enabled in the web.config and that you're running a Debug build.
@mjohnsonengr I'd swear this is a per user setting that is local... Perhaps you have .csproj.user file checked-in (you shouldn't).
So it is [a local setting]. I had previously assumed that all the project settings in that area were stored in team csproj. I had previously tried changing the URL that the browser would open by modifying "Project URL" and saw that it got changed in .csproj. Upon closer inspection, I now see that there is a "Apply server settings to all users" checkmark which controls just that field. My bad.
@PawelKrakowiak This doesn't seem to work. It opens the new tab regardless of checking the setting.
For Visual Studio on Mac, the comparable settings is under "Project > Options > Run > Default > ASP.NET Core". Uncheck the "Open URL in web browser when app starts".
U
Uwe Keim

For VS 15.7.1 ToolsOptionsProjects and SolutionsWeb Projects → uncheck Stop debugger when browser window is closed.


VS 15 is Visual Studio 2017, BTW.
Suggested change don't do what the question is about.
Works fine in VS2019 (16.4.4)
For me, this is true answer. vs2019 16.8.3
Also works in VS2022 RC3 (ie Version 17.0.0 RC3)
D
David W

Updated answer for a .NET Core Web Api project...

Right-click on your project, select "Properties," go to "Debug" and untick the "Launch browser" checkbox (enabled by default).

https://i.stack.imgur.com/C2FQH.png


@Grey Where is this option "Launch Browser"option present?
I've updated the answer: You've to go to the properties of your project to get to the option.
w
wonea

In an ASP.Net 5 project this can now be set for each launch profile.

Open the file launchsettings.json under the Startup Project Properties folder and add "launchBrowser": false to the profile you are configuring, such as in:

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

Perfect answer which I was looking for Thanks
A
Anjan Kant

In Visual Studio 2019, I resolved the same issue as below:

Go to your Visual Studio options Tools >>> Options >>> Project and Solutions >>> Web Projects then finally untick option >>> Stop debugger browser window is closed, close browser when debugging stops

Step 1:

https://i.stack.imgur.com/cg3jq.png

Step 2: untick option >>> Stop debugger browser window is closed, close browser when debugging stops

https://i.stack.imgur.com/BTjfg.png

Step 3:

Then finally click on >>> OK button, these are all the steps to resolve the issue.


This answer works even for visual studio 2019 Preview (Version 16.8.0 Preview 6.0)
Works like a charm in vs 2019
Magic, also works for VS 2022
D
DKR

https://i.stack.imgur.com/U5TOa.png


The best solution, helped for my .net core project
underrated answer
I was looking for a way to stop visual studio from launching a new browser when starting debug, but open a new tab in current browser instead. It makes no sense why, but disabling this makes it work.
B
Buddhika Chathuranga

This workaround works for me for VS 2019

Tools => Options

Then type Projects and solutions in the search box.

Select the Web Projects.

Then deselect the option below.

Stop debugger when browser window is closed, close browser when debugging stops.

This works for me. Hope this will help.


It still opens a new tab every time when I start debugging.
A
Alexa Adrian

As I did not had the mentioned option in my VS which is Visual Studio Enterprise 2017, I had to look for some other option.

Here is it what I've found:

Go to Tools -> Options -> Debugging tab(General) and uncheck "Enable JavaScript debugging for Asp.Net(Chrome and IE).

https://i.stack.imgur.com/EQIep.png


w
wonea

You can use the Attach To Process function, rather than pressing F5.

This can also allow you to navigate through known working sections without the slowdown of VS debugger loaded underneath.


I've tried that, but it won't stop execution when it finds a breakpoint. I need it to stop at breakpoints, is there a way to enable that? Thanks.
provided that your attached to a process which has loaded the exact same assemblies which are in the /bin/ folder of the application all breakpoints will work (oh, and provided there are .pdb files!)
I Googled on how to fix that but it seems like a lot of trouble. I couldn't get it to work. I'll use I Have the Hat's solution in the meanwhile. Thank you.
I can debug by pressing F5 with the "wait for a request from an external application" option, but I can't get Attach To Process to work (attaching to INetMgr.exe). Never stops at a breakpoint. I was using VSCommands in VS 2013, but the new 2015 version of VSCommands doesn't support "Attach to IIS" yet. Wish I knew what the issue was.
w
wonea

When you first open a web/app project, do a Ctrl-F5, which is the shortcut for starting the application without debugging. Then when you subsequently hit F5 and launch the debugger, it will use that instance of IE. Then stop and start the debugging in Visual Studio instead of closing IE.

It works on my machines. I'm using the built in dev web server. Don't know if that makes a difference.

Firefox will also stay open so you can debug in either or both at the same time.


Hey that works! Thanks a lot. Now I can avoid around 100 extra windows per coding session. Also, when I hit F5 VS resizes my IE window. Do you know how can I avoid that?
Sorry sker, I don't know the answer to that--it doesn't happen for me doing the above though, so there probably is an answer somewhere. Maybe IE is remembering its window size and it's unrelated to the debugging scenario?
s
stepank

There seems to be one case in which none of the above but the following helps. I'm developing a project for Windows Azure cloud platform and I have a web role. There is indeed a radio button Don't open page in Project -> {Project name} properties... as was pointed out by Pawel Krakowiak, but it has no effect in my case whatsoever. However, there is the main cloud project in solution explorer and there is the Roles folder under it. If I right click my web role in this folder and choose Properties, I get another set of settings and on the Configuration tab there is the Launch browser for flag, after unchecking it a new browser window is not opened on application start up.


A
Arad

Here's what did it for me:

Go to Project Properties > Debug > Uncheck "Launch Browser" > Save.

https://i.stack.imgur.com/vQduk.png


c
chri3g91

Joao Costa answer also holds true for .Net core 2 projects.

launchsettings.json --> "launchBrowser": false

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

This was super helpful. Worth noting that this launchSettings.json is hidden under Properties "Folder" in "Solution Explorer"
C
Cody Gaut

I looked over the answers and didn't see the solution I found mentioned. If it was, my apologies. In my case, currently using Visual Studio 2015. In the solution explorer, right click on the Project file and click properties. Go to the Debug tab and this should have info for how you're launching "IIS Express or Web(DNX)" for the first two drop downs, and then there should be a checkmark box for "Launch URL:". Uncheck this option and your browser won't be automatically launched everytime you go to debug your application. Hope this helps someone out.


C
Community

While there are several excellent answers, ranging from usual suspects to newer solutions, I would like to provide one more to the fray that addresses what you should do when you are working on a solution with multiple projects.

Before I arrived at this solution, I kept looking at bindingInformation in the applicationhost.config of the solution, tirelessly looking for any hint of why things were simply not working.

Turns out, the simple thing that I overlooked was that different projects have individual settings too. So, besides Project > {Project-Name} Properties... > Web > Start Action on my Backend Project, I also had to Go to Website > Start Options... > Start Action on my Frontend Project. Once there, I selected Don't open a page. Wait for a request from an external application and have been happy ever since!

https://i.stack.imgur.com/MDjGF.png


S
Siavash

You can right click on your project, then choose Properties , on Debug tab you should uncheck launch browser checkbox.


L
Lukas Klein Haneveld

You can now also get to the Web properties by clicking the dropdown arrow next to the Run button!

Click dropdown button next to "Run" { Project name } Properties Click "Web" in the list on the left Under the "Start Action" segment, click Don't open a page.

You're all set!

PS: This works for me, I'm on version 16.5.5 of VS Professional 2019 :)


r
rboy

If you're using the Web Publish feature in IIS, then the solution I found was to edit the publish configuration and remove the Destination URL from the configuration (leave it blank).

If this is defined, then every time you publish the project it will open the URL specified in the Destination URL (which is a redirect URL).

Reference: https://support.winhost.com/kb/a1604/visual-studio-publish-web-deploy.aspx