如何在 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 调试时启动后就停止,无法调试的问题