ChatGPT解决这个技术问题 Extra ChatGPT

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

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

在 VS 2015 中是这样的:

按开始调试

网站在新的 Chrome 标签页中打开

按停止调试

网站仍处于打开状态,并且该站点仍在运行/活动中

现在是 2017 年:

按开始调试

网站在无法与任何其他 Chrome 窗口/标签对接的新窗口中打开

按停止调试

网站/Chrome 窗口关闭,无法继续使用该网站,除非我手动转到 Chrome 中的 localhost 窗口

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

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

对于那些使用 Blazor 的人——我发现使用 Opera 进行调试可以解决很多这些问题。

j
jerone

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

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

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

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

工具 > 选项 > 调试 > 常规

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

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

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

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


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

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

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

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


在我停用“启用编辑并继续”(stackoverflow.com/questions/20831676/…)之前,这对我不起作用。我认为这两个变化一起是完整的解决方案。
在 vs2017 中不起作用,即使禁用 Edit and Continue
J
Jean-Sébastien Gervais

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

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

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


仅取消选中此选项是不够的。当您关闭浏览器时,调试器也会停止。
@FrenkyB 我只是猜测您需要关闭并重新打开所有 Visual Studio 实例,因为当我关闭浏览器时,vs 调试器并没有停止。
U
Uwe Keim

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

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

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

这样做后,开始调试 chrome 会打开一个新选项卡,停止选项卡后不会关闭但刷新网站显示白屏

再次在工具 → 选项中

取消选中启用编辑并继续

从现在开始,您的旧行为又回来了。

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


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

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

"launchBrowser": false,

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

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

https://i.stack.imgur.com/9cjfy.png


C
Can PERK

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

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


M
Michael Braude

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

按 ctrl + f5 不调试启动或带调试启动(按 f5),然后转到“调试”菜单并按“全部分离”

希望有帮助。


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