visual studio 2019 Edge Browser for javascript 调试在错误的行停止
visual studio 2019 Edge Browser for javascript debugging stops at wrong line
使用 VS 2019 社区版,我可以使用 IE 调试 javascript 就好了,但是当使用 Chrome 或 Edge (chromium) 时,断点处显示了错误的代码行。突出显示的代码行比实际代码行低约 50 行。
对于此 html 文件,断点出现在“调试器”下方 5 行;
对于这个 html 文件,断点正确地出现在“调试器”上;
有什么想法吗?两个 html 文件在 IE 中都能正常工作,但在 Edge 中不能。
使用 Visual Studio Community 2019 版本 16.11.6
这是一个经过验证的问题。请参阅:https://developercommunity.visualstudio.com/t/Edge-Browser-for-javascript-debugging-st/1628778 了解更多信息,如果这对您有影响,请在此处添加评论,让 Microsoft 知道我不是唯一的。似乎他们认为这是一个低优先级
对于Chrome,请执行以下操作:
1) 如果您的 VS 有任何其他扩展,请在 Extensions--> [=34= 下禁用任何其他已安装的扩展]管理扩展程序
2)尝试重置工具下的所有设置-->导入和导出设置-->重置所有设置--> 常规
3)关闭VS,删除C:\Users\xxx\AppData\Local\Microsoft\VisualStudio.0_xxxx\ComponentModelCache
下的组件缓存
4)删除解决方案文件夹下的.vs
隐藏文件夹,bin
和obj
文件夹
5) 之后,重启你的项目,勾选 Enable Javascript debuggigg for Asp.Net(Chrome, Edge and IE) Tools下的选项-->Options-->Debugging -->一般
6)尝试clean Chrome caches然后再测试
如果还是不行,请尝试更新到最新版本或者reset settings on Chrome。
除此之外,你也可以新建一个aspnet工程,测试新工程是否有问题。
从 https://developercommunity.visualstudio.com 我找到了答案(但还不是解决方案):
作者:Raghav Katyal [MSFT]2021 年 3 月 12 日
感谢您的反馈。 Visual Studio 目前不支持在 aspx 和 cshtml 文件中设置调试断点。我们目前的建议是将脚本分解为单独的 .js 文件,以便能够在这些文件中调试脚本。
我们使用客户的反馈来确定功能的优先级,并将此反馈项作为我们的优先级确定过程的输入,以便我们继续Visual Studio更好。
史蒂夫齐梅尔曼 2021 年 3 月 16 日:
感谢您的回复。您确实是对的,IE 调试器确实支持这种情况,但 Edge/Chrome 调试器不支持。
也就是说,我们目前正在考虑为所有浏览器启用 aspx 和 cshtml 嵌入式 JS 调试。在那之前请使用 IE 调试器来嵌入 JS。
Edge/Chrome 调试应该使用单独的 js 文件。您附加的日志在 aspx 文件中设置了断点。如果您能用单独的 js 文件重现问题并重新发布记录和日志,我们很乐意调查。
使用 VS 2019 社区版,我可以使用 IE 调试 javascript 就好了,但是当使用 Chrome 或 Edge (chromium) 时,断点处显示了错误的代码行。突出显示的代码行比实际代码行低约 50 行。
对于此 html 文件,断点出现在“调试器”下方 5 行;
对于这个 html 文件,断点正确地出现在“调试器”上;
有什么想法吗?两个 html 文件在 IE 中都能正常工作,但在 Edge 中不能。 使用 Visual Studio Community 2019 版本 16.11.6
这是一个经过验证的问题。请参阅:https://developercommunity.visualstudio.com/t/Edge-Browser-for-javascript-debugging-st/1628778 了解更多信息,如果这对您有影响,请在此处添加评论,让 Microsoft 知道我不是唯一的。似乎他们认为这是一个低优先级
对于Chrome,请执行以下操作:
1) 如果您的 VS 有任何其他扩展,请在 Extensions--> [=34= 下禁用任何其他已安装的扩展]管理扩展程序
2)尝试重置工具下的所有设置-->导入和导出设置-->重置所有设置--> 常规
3)关闭VS,删除C:\Users\xxx\AppData\Local\Microsoft\VisualStudio.0_xxxx\ComponentModelCache
4)删除解决方案文件夹下的.vs
隐藏文件夹,bin
和obj
文件夹
5) 之后,重启你的项目,勾选 Enable Javascript debuggigg for Asp.Net(Chrome, Edge and IE) Tools下的选项-->Options-->Debugging -->一般
6)尝试clean Chrome caches然后再测试
如果还是不行,请尝试更新到最新版本或者reset settings on Chrome。
除此之外,你也可以新建一个aspnet工程,测试新工程是否有问题。
从 https://developercommunity.visualstudio.com 我找到了答案(但还不是解决方案):
作者:Raghav Katyal [MSFT]2021 年 3 月 12 日
感谢您的反馈。 Visual Studio 目前不支持在 aspx 和 cshtml 文件中设置调试断点。我们目前的建议是将脚本分解为单独的 .js 文件,以便能够在这些文件中调试脚本。
我们使用客户的反馈来确定功能的优先级,并将此反馈项作为我们的优先级确定过程的输入,以便我们继续Visual Studio更好。
史蒂夫齐梅尔曼 2021 年 3 月 16 日:
感谢您的回复。您确实是对的,IE 调试器确实支持这种情况,但 Edge/Chrome 调试器不支持。
也就是说,我们目前正在考虑为所有浏览器启用 aspx 和 cshtml 嵌入式 JS 调试。在那之前请使用 IE 调试器来嵌入 JS。
Edge/Chrome 调试应该使用单独的 js 文件。您附加的日志在 aspx 文件中设置了断点。如果您能用单独的 js 文件重现问题并重新发布记录和日志,我们很乐意调查。