Visual Studio 2017中的Javascript断点

时间:2017-03-08 10:45:05

标签: javascript visual-studio 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>
}

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

根据这篇博文,我认为这应该有效: https://blogs.msdn.microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in-google-chrome/

我在这里遗漏了什么吗?难道不能以某种方式在Visual Studio 2017中使用它吗?

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

12 个答案:

答案 0 :(得分:24)

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

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

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

答案 1 :(得分:22)

另一个提示:只有在运行/调试时设置'start URL'后才能启用js debug。

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

答案 2 :(得分:12)

我有同样的问题。我按照同一篇文章中的说明操作: https://blogs.msdn.microsoft.com/webdev/2016/11/21/client-side-debugging-of-asp-net-projects-in-google-chrome/

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

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

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

答案 3 :(得分:9)

我有同样的问题,对.net核心来说是新的,一个对我有用的解决方案是添加调试器;在脚本的顶部:

<script>
  debugger;

  -- rest of your jscript here
</script>

答案 4 :(得分:3)

仅在启用选项的情况下,它在vs 2017中有效 “为ASP.NET(Chrome和IE)启用Javascript调试”并设置调试器;在* .cshtml中的js代码以及* .js文件

答案 5 :(得分:1)

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

答案 6 :(得分:0)

您可以尝试两种选择:

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

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

对于那些使用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实例上

答案 9 :(得分:0)

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

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

  

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

答案 10 :(得分:0)

工作了多个小时后,我右键单击IIS Express并退出,终于找到了所有的中断点。

我在脚本文件和断点中包含调试器,并且当我执行“清理解决方案”>“调试”后,我的断点开始再次出现。

我了解这是多么令人沮丧,我只是让stackoverflow社区知道对我有用的东西。

答案 11 :(得分:0)

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