如何在 VS 2017 上停止调试时自动停止浏览器关闭

Posted

技术标签:

【中文标题】如何在 VS 2017 上停止调试时自动停止浏览器关闭【英文标题】:How to stop browser closing automatically when you stop debugging on VS 2017 【发布时间】:2017-04-05 09:37:16 【问题描述】:

我正在试用新的 VS 2017 RC,想知道是否有人知道如何恢复以前的调试行为

在 VS 2015 中是这样的:

按开始调试

网站在新的 Chrome 标签页中打开 按停止调试 网站仍处于打开状态,并且该网站仍在运行/活跃

现在是 2017 年:

按开始调试 网站在无法与任何其他 Chrome 窗口/标签对接的新窗口中打开 按停止调试 网站/Chrome 窗口关闭,无法继续使用该网站,除非我手动转到 Chrome 中的 localhost 窗口

2017年有可能转回2015年的风格吗?所以 Chrome/Website 窗口可以与其他 Chrome 窗口/选项卡对接,并且在您停止调试后保持打开状态?

此外,我发现新的 Chrome 窗口使用起来令人沮丧,因为它似乎没有任何可用的历史记录/内容。例如,我无法自动完成表单或网址,这在我尝试测试表单时非常烦人

【问题讨论】:

对于那些使用 Blazor 的人 - 我发现使用 Opera 进行调试可以解决很多这些问题。 【参考方案1】:

Visual Studio 2017 版本 15.7 及更高版本和 Visual Studio 2019 再次改变了一切。

禁用以下复选框将允许您保持浏览器打开(停止调试后不会关闭)并打开另一个选项卡(而不是另一个窗口):

工具 > 选项 > 调试 > 常规

禁用“为 ASP.NET(Chrome、Edge 和 IE)启用 javascript 调试”。

工具 > 选项 > 项目和解决方案 > Web 项目

Visual Studio 2017)禁用“关闭浏览器窗口时停止调试器”。 (Visual Studio 2019) 禁用“浏览器窗口关闭时停止调试器,调试停止时关闭浏览器”。

【讨论】:

另请参阅 Microsoft 开发人员社区中的 this related bug report。 到底是谁添加了这个功能并认为是的,完美。太烦人了! 还请提供删除图片等的文字解决方案。 对于 VS 2019:如果有人在寻找最后一个选项(关闭浏览器窗口时停止调试器),他们已将其移至 工具 > 选项 > 项目和解决方案 > Web 项目 > 停止浏览器窗口关闭时调试器,调试停止时关闭浏览器。 See image @jag 谢谢,我已将其包含在说明中。【参考方案2】:

行为改变的原因是由于 VS 2017 支持调试在 Chrome 中运行的 JavaScript/TypeScript。在此处查看公告https://blogs.msdn.microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in-google-chrome/

要返回 2015 年 Chrome 未被调试器关闭的行为,请在工具 -> 选项中禁用 IE/Chrome 脚本调试器,如下所示:

【讨论】:

这对我不起作用,直到我停用“启用编辑并继续”(***.com/questions/20831676/…)。我认为这两个变化一起是完整的解决方案。 在 vs2017 中不起作用,即使禁用 Edit and Continue【参考方案3】:

对于那些更新到 Visual Studio 2019 的用户,该配置现在位于 工具 > 选项...

然后在选项对话框中(见下图) 项目和解决方案 > Web 项目: 取消选中Stop debugger when broswer window is closed, close browser when debugging

【讨论】:

仅取消选中此选项是不够的。当您关闭浏览器时,调试器也会停止。 @FrenkyB 我只是猜测您需要关闭并重新打开所有 Visual Studio 实例,因为当我关闭浏览器时,VS 调试器并没有停止。【参考方案4】:

我正在写这个答案,因为我认为以前的答案只涵盖了问题的一半。

你想要的第一件事就是摆脱这个烦人的“将 chrome 作为新窗口运行并在停止调试时自动关闭”

工具 → 选项 → 取消选中为 ASP.NET 启用 JavaScript 调试

在开始调试chrome打开一个新标签后,停止后标签没有关闭但刷新网站显示白屏

再次在工具 → 选项

取消选中启用编辑并继续

现在你又恢复了原来的行为。

【讨论】:

对于 VS 15.7.0,这两个选项都是必需的(在接受的答案足够之前) @Stefan 是正确的;您现在需要禁用这两个选项。但以前它会打开一个选项卡,现在打开所选浏览器的另一个实例。 但是我需要编辑并继续服务器端代码,为什么它们交织在一起? @ethermal jerone 的回答(Web Projects -> Stop Debugger unchecked)在不禁用编辑并继续的情况下工作。 Enable Edit and Continue 和 Hot Reload 在 VS 2022 中被选中并显示为灰色【参考方案5】:

转到工具 -> 选项并搜索“Stop Debugger”。然后选择 Projects and Solutions 下的节点 Web Projects。取消选中“浏览器窗口关闭时停止调试器”。在此选项之前,您应该应用@jerone 的建议。

PS:VS 15.7版本以后可以使用这个选项

【讨论】:

【参考方案6】:

如果您的项目是 .net core: 在 Properties 文件夹 > launchSettings.json 文件中设置此配置:

"launchBrowser": false,

Visual Studio 2022 中的其他内容: 工具 > 选项 > 项目和解决方案 > Web 项目

uncheck : 关闭浏览器窗口时停止调试器,调试停止时关闭浏览器

【讨论】:

【参考方案7】:

有两种方法可以做到这一点:

    通过按 ctrl + f5 或在不调试的情况下启动或 使用调试启动(按 f5),然后转到“调试”菜单并按“全部分离”

希望对您有所帮助。

【讨论】:

我认为这两个答案都不能真正解决这个糟糕的 2017 年工作流程/调试问题。关键是在 2015 年,您可以启动到现有的 Chrome 实例并仍然在 VS 中调试服务器代码。在 2017 年似乎没有合理的方法可以做到这一点。您不必每次启动应用程序时都“全部分离”,并关闭弹出的额外 Chrome 实例等。不要给 Michael B. 带来困难,只是对这个问题非常恼火。希望有一个更好的解决方案可以回到有意义的 2015 年调试工作流程。 @Austin,感谢您的反馈。我会把它传递给团队(我在微软的 Visual Studio 工作) @MichaelBraude 是的,这是生产力倒退的一大步。 正如 Mads 所说,如果您不喜欢新行为,可以禁用它。感谢您的反馈! 是的,但这样做也会禁用 chrome 调试器。

以上是关于如何在 VS 2017 上停止调试时自动停止浏览器关闭的主要内容,如果未能解决你的问题,请参考以下文章

在 VS2010 中停止在 IIS 上调试 Web 应用程序需要很长时间

开始编辑代码时如何自动停止调试?

VS code 进行 flutter 调试时启动后就停止,无法调试的问题

取消调试停止时自动关闭控制台,取消webapi调试时关闭浏览器自动关闭程序

VS2017启动实例调试(谷歌浏览器)闪退问题

vs2019调试时进不去Controller.打开f12才可以正常,解决方案