开始调试时阻止 Visual Studio 启动新的浏览器窗口?

Posted

技术标签:

【中文标题】开始调试时阻止 Visual Studio 启动新的浏览器窗口?【英文标题】:Stop Visual Studio from launching a new browser window when starting debug? 【发布时间】:2010-10-17 12:28:47 【问题描述】:

我已经打开了一个窗口,其中包含我正在调试的网站。每次我需要调试时,我都不需要 VS 为我启动另一个。

有没有办法阻止这种行为?

【问题讨论】:

您是否启用了选项卡式浏览?.. 您使用的是 IE 吗? 您想禁用浏览器链接功能 【参考方案1】:

这是为我做的:

转到项目属性>调试>取消选中“启动浏览器”>保存

【讨论】:

【参考方案2】:

在 Visual Studio 2019 中,我解决了以下相同的问题:

转到您的 Visual Studio 选项工具 >>> 选项 >>> 项目和解决方案 >>> Web项目 然后最后 untick 选项 >>> Stop debugger 浏览器窗口关闭,调试停止时关闭浏览器

第 1 步:

第 2 步: 取消勾选选项>>> 停止调试器浏览器窗口关闭,调试停止时关闭浏览器

第 3 步:

然后最后点击>>> 确定按钮,这些都是解决问题的步骤。

【讨论】:

这个答案甚至适用于 Visual Studio 2019 预览版(版本 16.8.0 预览版 6.0) 在 vs 2019 中像魅力一样工作【参考方案3】:

如果您在 IIS 中使用 Web 发布功能,那么我找到的解决方案是编辑发布配置并从配置中删除 Destination URL(将其留空)。

如果已定义,则每次发布项目时,它都会打开Destination URL 中指定的 URL(这是一个重定向 URL)。

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

【讨论】:

【参考方案4】:

您现在还可以通过单击“运行”按钮旁边的下拉箭头来访问 Web 属性!

    点击“运行”旁边的下拉按钮 项目名称 属性 点击左侧列表中的“Web” 在“开始操作”部分下,点击不打开页面。

一切就绪!

PS:这对我有用,我使用的是 VS Professional 2019 的 16.5.5 版 :)

【讨论】:

【参考方案5】:

此解决方法适用于 VS 2019

工具 => 选项

然后在搜索框中输入Projects and solutions

选择Web Projects

然后取消选择下面的选项。

当浏览器窗口关闭时停止调试器,当调试停止时关闭浏览器。

这对我有用。希望这会有所帮助。

【讨论】:

每次我开始调试时它仍然会打开一个新标签。【参考方案6】:

.NET Core Web Api 项目的更新答案...

右键单击您的项目,选择“属性”,转到“调试”并取消选中“启动浏览器”复选框(默认启用)。

【讨论】:

@Grey 这个选项“启动浏览器”选项在哪里? 我已经更新了答案:您必须转到项目的属性才能找到该选项。【参考方案7】:

我已经按照以下步骤解决了我的问题。 转到工具>>单击选项>>单击项目和解决方案>>网络项目>> 取消勾选“关闭浏览器时停止调试”选项

【讨论】:

最佳解决方案,对我的 .net 核心项目有所帮助 被低估的答案 我正在寻找一种方法来阻止 Visual Studio 在开始调试时启动新浏览器,而是在当前浏览器中打开一个新选项卡。这是没有道理的,但禁用它会使其工作。【参考方案8】:

从主菜单中打开您的启动项目的属性(Project → ProjectName Properties... 或在 Solution Explorer 中右键单击您的项目并选择 属性),然后导航到 Web 选项卡并在 开始操作 下选择 不打开页面。等待来自外部应用程序的请求

您仍然可以使用任何浏览器(或 Fiddler,等等)访问正在运行的应用程序,但它不会自动打开浏览器窗口,它只会在后台启动并等待任何请求。

【讨论】:

确实如此。我一直用它来调试。你一定有错误的配置。仔细检查您是否在 web.config 中启用了调试,并且您正在运行调试版本。 @mjohnsonengr 我发誓这是一个本地的每个用户设置......也许你有 .csproj.user 文件签入(你不应该)。 所以它是[本地设置]。我之前假设该区域中的所有项目设置都存储在 csproj 团队中。我之前曾尝试通过修改“项目 URL”来更改浏览器将打开的 URL,并看到它在 .csproj 中发生了更改。经过仔细检查,我现在看到有一个“将服务器设置应用于所有用户”复选标记,它仅控制该字段。我的错。 @PawelKrakowiak 这似乎不起作用。无论检查设置,它都会打开新选项卡。 对于 Mac 上的 Visual Studio,可比较的设置位于“项目 > 选项 > 运行 > 默认 > ASP.NET Core”下。取消选中“应用启动时在网络浏览器中打开 URL”。【参考方案9】:

对于 VS 15.7.1 ToolsOptionsProjects and SolutionsWeb Projects → 取消选中 Stop debugger when browser window is closed

【讨论】:

VS 15 是 Visual Studio 2017,顺便说一句。 建议的改变不要做问题的意思。 在 VS2019 (16.4.4) 中运行良好 对我来说,这是正确的答案。 vs2019 16.8.3 同样适用于 VS2022 RC3(即版本 17.0.0 RC3)【参考方案10】:

您可以右键单击您的项目,然后选择 Properties ,在 Debug 选项卡上,您应该取消选中 launch browser 复选框。

【讨论】:

【参考方案11】:

由于我的 VS 中没有提到的选项,即 Visual Studio Enterprise 2017,我不得不寻找其他选项。

这是我发现的:

转到工具 -> 选项 -> 调试选项卡(常规)并取消选中“为 Asp.Net(Chrome 和 IE)启用 javascript 调试。

【讨论】:

【参考方案12】:

Joao Costa 的回答也适用于 .Net core 2 项目。

launchsettings.json --> "launchBrowser": false

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

【讨论】:

这非常有帮助。值得注意的是,这个launchSettings.json隐藏在“解决方案资源管理器”中的“文件夹”属性下【参考方案13】:

虽然有几个很好的答案,从usual suspects 到newer 解决方案,但我想再提供一个解决方案,解决在处理包含多个项目的解决方案时应该做什么

在我找到这个解决方案之前,我一直在查看解决方案的 applicationhost.config 中的 bindingInformation,不知疲倦地寻找任何关于为什么事情根本不起作用的线索。

事实证明,我忽略了简单的事情是不同的项目也有各自的设置。

所以,除了我的后端项目上的Project > Project-Name Properties... > Web > Start Action,我还必须在我的前端项目上转到Website > Start Options... > Start Action。在那里,我选择了Don't open a page. Wait for a request from an external application,从此一直很开心!

【讨论】:

【参考方案14】:

您可以使用附加到进程功能,而不是按 F5

这还可以让您在已知的工作部分中导航,而不会降低下面加载的 VS 调试器的速度。

【讨论】:

我试过了,但它在找到断点时不会停止执行。我需要它在断点处停止,有没有办法启用它?谢谢。 假设您附加到一个进程,该进程加载了与应用程序的 /bin/ 文件夹中完全相同的程序集,所有断点都可以工作(哦,如果有 .pdb 文件!) 我在谷歌上搜索了如何解决这个问题,但这似乎很麻烦。我无法让它工作。同时,我将使用 I Have the Hat 的解决方案。谢谢。 我可以通过按 F5 和“等待来自外部应用程序的请求”选项进行调试,但我无法让附加到进程工作(附加到 INetMgr.exe)。永远不会在断点处停止。我在 VS 2013 中使用 VSCommands,但 2015 年新版本的 VSCommands 还不支持“附加到 IIS”。希望我知道问题出在哪里。【参考方案15】:

CTRL+ALT+ENTER 如果你的修改只是前端

http://blogs.msdn.com/b/webdev/archive/2013/06/28/browser-link-feature-in-visual-studio-preview-2013.aspx

【讨论】:

【参考方案16】:

在 ASP.Net 5 项目中,现在可以为每个启动配置文件进行设置。

打开启动项目属性文件夹下的launchsettings.json文件,将"launchBrowser": false添加到你正在配置的配置文件中,比如在:

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

【讨论】:

【参考方案17】:

当你第一次打开一个 web/app 项目时,执行 Ctrl-F5,这是无需调试即可启动应用程序的快捷方式。然后,当您随后点击 F5 并启动调试器时,它将使用该 IE 实例。然后在 Visual Studio 中停止并开始调试,而不是关闭 IE。

它适用于我的机器。我正在使用内置的开发 Web 服务器。不知道会不会有影响。

Firefox 也将保持打开状态,因此您可以同时调试其中一个或两个。

【讨论】:

嘿,这行得通!非常感谢。现在我可以避免每个编码会话大约 100 个额外的窗口。此外,当我按 F5 时,VS 会调整 IE 窗口的大小。你知道我怎样才能避免这种情况吗? 对不起,sker,我不知道这个问题的答案——虽然我没有发生上述情况,所以可能在某个地方有答案。也许 IE 正在记住它的窗口大小,它与调试场景无关?【参考方案18】:

我查看了答案,但没有看到我找到的解决方案。如果是的话,我很抱歉。在我的情况下,当前使用 Visual Studio 2015。在解决方案资源管理器中,右键单击项目文件并单击属性。转到“调试”选项卡,这应该有关于如何为前两个下拉菜单启动“IIS Express 或 Web(DNX)”的信息,然后应该有一个用于“启动 URL:”的复选标记框。取消选中此选项,您的浏览器将不会在您每次调试应用程序时自动启动。希望这可以帮助某人。

【讨论】:

【参考方案19】:

似乎有一种情况,上述方法均无济于事,但以下方法有所帮助。我正在为 Windows Azure 云平台开发一个项目,并且我有一个 Web 角色。正如 Pawel Krakowiak 所指出的,在 Project -> Project name properties... 中确实有一个单选按钮 Don't open page,但它没有任何效果在我的情况下。但是,解决方案资源管理器中有主云项目,其下有 Roles 文件夹。如果我在此文件夹中右键单击我的 Web 角色并选择 Properties,我会得到另一组设置,并且在 Configuration 选项卡上有 Launch browser for em> 标志,取消选中后,应用程序启动时不会打开新的浏览器窗口。

【讨论】:

以上是关于开始调试时阻止 Visual Studio 启动新的浏览器窗口?的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2015 中调试时无法解析参数名称类型 ISession

Visual Studio 2010 C# 调试器不会在新断点处停止

为啥我调试时 Visual Studio 会启动多个 WebDev?

应用程序启动时的 Visual Studio 远程调试

有没有办法阻止Visual Studio将Thread启动和完成的语句打印到输出窗口?

Visual Studio Code Chrome 调试器 - 开始调试时出错