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


338

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

在VS 2015中,它像这样:

按开始调试

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

现在在2017年:

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

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

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

Answers:


585

Visual Studio 2017 15.7及更高版本和Visual Studio 2019再次更改了功能。

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

在此处输入图片说明

在此处输入图片说明

工具>选项>调试>常规

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

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

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

另请参阅Microsoft开发者社区中的此相关错误报告
Uwe Keim '18

112
到底谁添加了此功能,并认为是的,完美。太烦人了!
乔恩

2
还请提供当图像被删除等的文本解决方案
mohas

18
对于VS 2019:如果有人在寻找最后一个选项(关闭浏览器窗口时停止调试器),则将其移至``工具''>``选项''>``项目和解决方案''>``Web项目''>``关闭浏览器窗口时停止调试器'',在调试时关闭浏览器停止查看图片
jag

1
@jag谢谢,我将其包含在说明中。
jerone

83

行为更改的原因是由于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脚本调试器,如下所示:

调试器选项


8
在我取消激活“启用编辑并继续”(stackoverflow.com/questions/20831676/…)之前,这对我不起作用。我认为这两个更改共同构成了完整的解决方案。
JoaoRibeiro '17

4
即使在禁用后也无法在vs2017中运行Edit and Continue
ahmad molaie

24

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

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

在此处输入图片说明


仅取消选中此选项是不够的。当您关闭浏览器时,调试器也会停止。
FrenkyB

@FrenkyB我只是猜测您需要关闭并重新打开所有Visual Studio实例,因为当我关闭浏览器时,vs调试器并未停止。
让-塞巴斯蒂安·热尔韦

19

我正在写此答案,因为我认为以前的答案仅解决了一半问题。

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

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

完成此操作后,Chrome启动调试时会打开一个新标签页,停止后该标签页未关闭,但刷新网站后显示白屏

再次在工具→选项中

取消选中启用编辑并继续

从现在开始,您恢复了以前的行为。

选项窗口


3
使用VS 15.7.0时,两个选项都是必需的(在适应的答案足够之前)
Stefan,

1
@Stefan是正确的;您需要立即禁用两个选项。但是以前它会打开一个选项卡,现在会打开所选浏览器的另一个实例。
jerone '18

但是我需要编辑并继续输入服务器端代码,为什么它们会交织在一起?
ethermal

@ethermal jerone的答案(Web项目->停止调试器未选中)在不禁用“编辑并继续”的情况下起作用。
史蒂夫·格林

2

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

PS:VS 15.7版之后可以使用此选项


1

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

  1. 通过按Ctrl + F5进行启动而无需调试
  2. 通过调试启动(按f5键),然后转到“调试”菜单,然后按“全部分离”

希望能有所帮助。


6
我认为这两个答案都无法真正解决这个可怕的2017年工作流程/调试问题。关键是,在2015年,您可以启动到现有的Chrome实例中,并仍然在VS中调试服务器代码。似乎没有合理的方法可以在2017年做到这一点。您不必在每次启动应用程序时都“全部分离”,并关闭弹出的Chrome的其他实例,等等。 MS对这个问题感到非常恼火。希望有一个更好的解决方案可以重返2015年有意义的调试工作流程。
奥斯汀·哈里斯

4
@奥斯汀,感谢您的反馈。我会将其传递给团队(我在Microsoft的Visual Studio上工作)
Michael Braude

3
@MichaelBraude是的,这是生产力落后的重要一步。
Spongman

1
正如Mads所说,如果您不喜欢它,则可以禁用它。感谢您的反馈!
Michael Braude

2
是的,但是这样做也会禁用Chrome调试器。
Spongman '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.