繁体   English   中英

"Visual Studio 2017 中的 Javascript 断点"

[英]Javascript breakpoints in Visual Studio 2017

我刚刚安装了 Visual Studio 2017。启动 ASP.NET MVC 应用程序后,我收到消息,指出 Visual Studio 中的 chrome 调试已启用。

但是我在 Visual Studio 中的断点不会命中。 Razor 代码上的断点似乎可以正常工作,但 Javascript 不能。 断点没有像应有的那样完全变红。 重新启动,重建似乎没有任何效果。

我有以下代码示例

@Html.Partial("_Test", Model.Test) // debugging works here

<script>
    var i = 1;
    console.log(i); // debugging does not work here or above
</script>

@section scripts {
    <script>
        var a = 11;
        console.log(a); // debugging does not work here or above
    </script>
}

此功能不适用于 *.cshtml 文件中的 javascript 代码,但仅适用于单独的 *.js(或 *.ts)文件中的代码。

在此处输入图片说明 请注意 JavaScript 文件中的断点如何处于活动状态,而 Razor 视图中的断点未处于活动状态。

我还注意到,当页面在当前 Chrome 会话中第一次加载时,在页面加载期间执行 JavaScript 代码时,不会为 JavaScript 文件命中断点。 断点仅在文档完成加载一次后起作用。

另一个提示:只有在运行/调试时设置“开始 URL”后才能启用 js 调试。

只有这样 VS 才会附加到浏览器进程。

我遇到过同样的问题。 我按照同一帖子中的说明进行操作: https : //blogs.msdn.microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in-google-chrome/

我在 Visual Studio 中执行了以下操作:转到Tools -> Options -> Debugging -> General并关闭设置“为 ASP.NET(Chrome 和 IE)启用 JavaScript 调试”。 保存更改,然后运行网页。

在此之后,我注意到 Chrome 在加载我的页面之前没有显示“调试网页”。 然后我关闭了我的网页并停止了调试会话。

我重新启用了“为 ASP.NET(Chrome 和 IE)启用 Javascript 调试”选项,然后使用 IE 运行该网页,它工作正常。 页面停止,断点出现在我的视觉工作室中。

我有同样的问题,刚接触 .net 核心,对我有用的解决方案是添加调试器; 在脚本的顶部:

<script>
  debugger;

  -- rest of your jscript here
</script>

只有启用选项“启用 ASP.NET(Chrome 和 IE)的 Javascript 调试”并设置调试器,它才能在 vs 2017 中工作; 在 *.cshtml 以及 *.js 文件中的 js 代码中

在考虑让这个工作的唯一方法是使用安装程序在 Visual Studio 2017 上进行修复后,我意识到我们有BundleTable.EnableOptimizations = true; Bundle.config 我删除了这一行并将其添加到Web.Debug.config转换中,它开始按预期工作。

您可以尝试两种选择:

  1. 在 VS 选项中关闭“为 ASP.NET(Chrome 和 IE)启用 JavaScript 调试”,然后在浏览器中使用调试器(F12)。
  2. 在 Visual Studio 中开始调试,然后在Solution Explorer -> Internet Explorer -> <your view name>添加断点。 (假设您使用的是 IE)

我在这里最好的猜测(至少在我的情况下,也可能在你的情况下)是它与捆绑有关。 我现在正在处理的项目将单独的脚本捆绑到一个 Big Daddy 脚本中(在调试配置中没有缩小),所以我的预感是 VS 不会将我的断点映射到在浏览器中运行的最终脚本。

我知道这并不能回答问题,因为这只是一种预感,但我希望它为我们指明了正确的方向。 也许如果我们可以根据其他人的经验验证这一点,这可能会演变成一个真正的答案。

对于那些使用 Google Chrome Portable(或手动将 chrome 添加到浏览器调试列表)的人来说,这有帮助:

https://docs.microsoft.com/en-us/visualstudio/javascript/tutorial-nodejs-with-react-and-jsx?view=vs-2017#set-and-hit-a-breakpoint-in-the-客户端反应代码

您需要手动附加到正确的 chrome 实例和中提琴

  • Visual Studio Professional 2017 版本 15.8.1
  • Chrome 版本 68.0.3440.106(官方版本)(64 位)

我必须在以下位置启用旧版 Chrome JavaScript 调试器:

选项 -> 工具 -> 调试 -> 常规 -> 为 ASP.NET 启用旧版 Chrome JavaScript 调试器

在我工作了几个小时后右键单击 IIS Express 并退出后,我终于得到了所有断点开始命中。

我的脚本文件和断点中有调试器,只要我执行了 Clean Solution > Debug 我的断点就开始再次命中。

我明白这是多么令人沮丧,我只是让 stackoverflow 社区知道什么对我有用。

我遇到了同样的情况 Javascript 断点没有命中,然后我卸载并重新安装了 Visual Studio 2017,它又开始工作了

我有同样的情况 Javascript 断点没有命中,然后我卸载并重新安装了 Visual Studio 2017,但它不起作用。 重新安装Windows 10 没有解决办法。 最后,我重新接受了计算机科学的教育。 现在一切正常。

谢谢vs2017,感谢所有微软。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM