代码之家  ›  专栏  ›  技术社区  ›  Chris Farmer Marcelo Cantos

Visual Studio 2010脚本调试器不适用于我

  •  35
  • Chris Farmer Marcelo Cantos  · 技术社区  · 15 年前

    我刚安装了Vs2010测试版2,想玩一个ASP.NET MVC 2项目。我只是添加了一些脚本( alert('hello'); )在主控制器的index.aspx视图中,我可以看到它正在执行。但是,当我试图设置一个断点时,它永远不会被击中。我还尝试使用“debugger”关键字,当我这样做时,我得到一条令人失望的消息:“当前位置没有可用的源代码”。当我尝试独立连接到运行应用程序的IE进程时,也会收到此消息。

    要获得友好的脚本调试体验,我需要做什么?(我已经成功地使用了Firebug进行调试,但出于某种原因,我更喜欢使用vs调试器。)

    以下是我的配置的一些详细信息:

    • 我将在2010测试版2中发布我的产品。
    • IE8版本8.0.7600.16385是我的默认浏览器。
    • 未选中“禁用脚本调试(Internet Explorer)”高级选项。
    • 未选中“禁用脚本调试(其他)”选项。
    • 在我的ASP.NET MVC 2项目的“Web”属性选项卡中,检查ASP.NET调试器。所有其他都未选中。
    • Visual Studio 2008脚本调试似乎工作正常。
    8 回复  |  直到 11 年前
        1
  •  30
  •   Mister Cook    13 年前

    如果选择了Silverlight调试器,则调试器无法同时调试Silverlight代码和脚本代码。javascript调试已关闭。

    1. 转到项目的属性(Alt+Enter)。
    2. 对于网站项目:选择“开始选项”。或者对于Web应用程序:转到Web选项卡,在底部您将看到调试器选项。
    3. 如果希望能够调试javascript,请检查Silverlight复选框是否未选中。(不幸的是,这里的用户界面不清楚这个副作用。)
        2
  •  7
  •   Ryan Pedersen    15 年前

    我也有同样的问题。我无法让IDE甚至在脚本标记内设置的断点处中断。但是,当我添加“debugger;”时,脚本标记中的第一行能够让IDE做出响应,但随后只能说disassebly不可用。

    但是,我可以单击调试工具,如“单步执行”和“单步执行”。当我这样做的时候,IDE确实进入了我正在使用的一些外部脚本(jquery和google maps)。所以我把javascript代码块从视图中去掉,放到“content”文件夹中一个单独的.js文件中。然后我添加了一个脚本标记来引用这个新的.js文件(url=“/content/test.js”)。

    它奏效了…有点麻烦的是,您必须完成这项工作,但对于不直接包含在视图中的javascript,可能还有一些话要说。我希望这是他们打算修复的错误。

        3
  •  4
  •   clau137    14 年前

    在IE上调试时,VS似乎向解决方案资源管理器添加了一个名为“脚本文档”的文件夹。在这个文件夹中有另一个名为“Windows Internet Explorer”的文件夹,在这个文件夹中,我看到所有加载的JS脚本和当前显示在IE上的(编译的)HTML文件。在这个HTML文件中的脚本标记上设置断点对我来说确实有效。

        4
  •  2
  •   Mrityunjaya Tiwari    14 年前

    若要解决此问题,请转到项目的属性并选择“开始选项”。然后选中本机代码复选框。取消选中Silverlight复选框,因为这两个选项不能同时工作。

        5
  •  1
  •   popester    15 年前

    ctrl+alt+p(附加到进程),选择ie,为调试类型选择“script”。

        6
  •  0
  •   frjames    15 年前

    正如Ryan上面提到的,我把我的脚本移到了scripts文件夹下的一个单独的文件中。 我还将debug添加到脚本的名称中,使其成为mytestscript。 调试 J.我通过一个脚本标记包含了脚本,并且可以在调试程序命中的脚本文件中设置断点。

        7
  •  0
  •   CraigAP    14 年前

    我发现google chrome devloper工具完美地显示了javascript。在我的例子中,我通常使用jquery的getscript函数加载脚本,代码的执行通常是在加载页面或处理事件时通过jquery回调进行的。使用Visual Studio 2010,我经常遇到“无源代码”错误。很遗憾,我需要Chrome来调试JavaScript,这是我的Visual Studio项目的一部分。

        8
  •  0
  •   Frank Hoffman    14 年前

    使用单独的JS文件有其缺点。例如,您不能使用MVC助手。微软真的需要解决这个问题。

    IntelliSense在视图的脚本块中也不能正常工作,即使您包含如下引用注释:

    /// <reference path="/Scripts/jquery-1.6-vsdoc.js" />
    /// <reference path="/Scripts/jquery-1.6.js" />
    

    不过,使用这种方法,IntelliSense在JS文件中工作正常。