Javascript 断点 Visual Studio 2017

Javascript breakpoints in Visual Studio 2017

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

但是我在 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>
}

我没有打开 chrome 调试控制台,我检查了 Visual Studio ('Enable Javascript debugging..') 中启用的选项。

根据此博客 post 我认为这应该可行: https://blogs.msdn.microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in-google-chrome/

我是不是漏掉了什么?难道这在 Visual Studio 2017 年以某种方式不起作用?

我只有一个扩展,那就是 Resharper,但我想这不是问题。

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

注意 JavaScript 文件中的断点是如何激活的,而 Razor 视图中的断点不是。

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

我遇到了同样的问题。我遵循了相同 post 的说明: 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 并关闭设置 "Enable JavaScript Debugging for ASP.NET (Chrome and IE)"。保存更改,然后 运行 网页。

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

我重新启用了 "Enable Javascript Debugging for ASP.NET (Chrome and IE)" 选项,然后 运行 使用 IE 的网页,它工作了。页面停止,断点出现在我的 visual studio.

另一个提示:在 run/debug 上设置 'start URL' 后,只能启用 js 调试。

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

您可以尝试两个选项:

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

我有同样的问题,.net core 的新手,对我有用的解决方案是添加调试器;在脚本的顶部:

<script>
  debugger;

  -- rest of your jscript here
</script>

它在 vs 2017 中仅在启用选项的情况下有效 "Enable Javascript Debugging for ASP.NET (Chrome and IE)" 并设置调试器;在 *.cshtml 和 *.js 文件中的 js 代码

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

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

对于那些使用 Google Chrome 便携版(或手动添加 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-client-side-react-code

然后您需要手动附加到正确的 chrome 实例和 viola

  • Visual Studio 专业版 2017 版本 15.8.1
  • Chrome 版本 68.0.3440.106(正式版)(64 位)

我必须启用旧版 Chrome JavaScript 调试器:

Options -> Tools -> Debugging -> General -> Enable legacy Chrome JavaScript debugger for ASP.NET

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

在工作了好几个小时后,我终于在 IIS Express 上单击鼠标右键并退出,终于让我所有的断点都开始命中了。

我的脚本文件和断点中有调试器,当我执行 Clean Solution > Debug 后,我的断点又开始命中。

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

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

我遇到了同样的情况 Javascript 断点没有命中,然后我卸载并重新安装 visual studio 2017,但它没有用。重新安装Windows10 无解。最后我 re-educated 计算机科学。现在一切正常。

感谢vs2017,感谢微软的所有人