【问题标题】:Visual Studio 2010 script debugger doesn't work for meVisual Studio 2010 脚本调试器对我不起作用
【发布时间】:2010-12-10 04:48:33
【问题描述】:

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

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

以下是我的配置的一些细节:

  • 我正在 VS 2010 Beta 2 中发布我的东西。
  • IE8 版本 8.0.7600.16385 是我的默认浏览器。
  • “禁用脚本调试 (Internet Explorer)”高级选项未选中。
  • 未选中“禁用脚本调试(其他)”选项。
  • 在我的 ASP.NET MVC 2 项目的“web”属性选项卡中,检查了 ASP.NET 调试器。其他所有内容均未选中。
  • Visual Studio 2008 脚本调试似乎工作得很好。

【问题讨论】:

    标签: javascript visual-studio-2010 visual-studio debugging


    【解决方案1】:

    如果选择了 Silverlight 调试器,则调试器不能同时调试 Silverlight 代码和脚本代码。JavaScript 调试被关闭。

    1. 转到项目的属性 (Alt+Enter)。
    2. 对于网站项目:选择“开始选项”。或者对于 Web 应用程序:转到 Web 选项卡,在底部您将看到 Debuggers 选项。
    3. 如果您希望能够调试 JavaScript,请检查是否未选中 Silverlight 复选框。 (很遗憾,这里的 UI 并不清楚这种副作用。)

    【讨论】:

    • 我可以吻你。我正在尝试在 asp.net 站点中调试 Javascript,并附加了 Silverlight 项目。每次我尝试调试时,我都会收到这个奇怪的弹出窗口循环,要求我附加调试器,然后抱怨调试器已经附加。为了清楚起见,请转到解决方案中的 asp.net 项目,然后转到项目属性并打开 Web 选项卡。在底部有供调试器使用的复选框。禁用 Silverlight 调试器将使 javascript 调试器再次工作。这需要进入 wiki 条目或其他内容。
    • @mister ok on mvc3/vs2010 我在项目属性下看不到 Start Options
    • @Mister Cook,你知道这个选项在 ASP.net / MVC 2 项目中的什么位置吗?
    • 在 Web 应用程序项目中转到项目属性 (Alt+Enter) |网页然后它在底部(可能需要向下滚动)
    • 谢谢!在我找到这个解决方案之前,这让我发疯。 PS:其他人选择了 SL 调试器,所以我不知道去那里看。
    【解决方案2】:

    我遇到了同样的问题。我什至无法让 IDE 在脚本标记内设置的断点处中断。但是,当我添加“调试器”时;因为脚本标签中的第一行能够让 IDE 做出响应,但随后只能说无法拆卸。

    但是,我能够单击“步入”和“步过”等调试工具。当我这样做时,IDE 确实进入了我正在使用的一些外部脚本(JQuery 和谷歌地图)。因此,我将 JavaScript 代码块从视图中取出,并将其放入“内容”文件夹中的单独 .js 文件中。然后我添加了一个脚本标签来引用这个新的 .js 文件 (url = "/Content/Test.js")。

    它工作...有点麻烦,你必须经历这个努力,但也许有一些事情要说 JavaScript 没有直接包含在视图中。我希望这是他们打算修复的错误。

    【讨论】:

      【解决方案3】:

      在 IE 上调试时,VS 似乎在解决方案资源管理器中添加了一个名为“Script Documents”的文件夹。在这个文件夹中还有另一个名为“Windows Internet Explorer”的文件夹,在其中我可以看到所有加载的 js 脚本和当前在 IE 上显示的(编译的)HTML 文件。在这个 HTML 文件中的脚本标签上设置断点对我有用。

      【讨论】:

        【解决方案4】:

        要解决此问题,请转到项目的属性并选择“启动选项”。然后选中本机代码复选框。并取消选中 Silverlight 复选框,因为这两个选项不能一起使用。

        【讨论】:

          【解决方案5】:

          CTRL+Alt+P(附加到进程),选择IE,调试类型选择“脚本”。

          【讨论】:

          • 感谢您的想法,但是当我尝试使用 F5 和“调试器”关键字启动时,我得到了相同的“当前位置没有可用的源代码”消息。跨度>
          • 能否在javascript中添加一个函数,附加,然后根据函数名新建一个断点?
          【解决方案6】:

          正如 Ryan 上面提到的,我将我的脚本移动到 Scripts 文件夹下的一个单独文件中。 我还在脚本名称中添加了 debug,因此它变成了 MyTestScript.debug.js。我通过脚本标签包含了脚本,并且可以在调试器命中的脚本文件中设置断点。

          【讨论】:

            【解决方案7】:

            我发现 Google Chrome 开发者工具完美地显示了 JavaScript。就我而言,我通常使用 jQuery 的 getScript 函数加载脚本,并且代码的执行通常是在加载页面或处理事件时通过 jQuery 回调的方式。在 Visual Studio 2010 中,我经常遇到“无源”错误。很遗憾,我需要 Chrome 来调试我的 Visual Studio 项目中的 JavaScript。

            【讨论】:

              【解决方案8】:

              使用单独的 js 文件有其缺点。例如,您不能使用 MVC 助手。微软真的需要弄清楚这一点。

              即使您像这样包含参考 cmets,Intellisense 也无法在视图上的脚本块中正常工作:

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

              Intellisense 可以在 js 文件中使用这种方法正常工作。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-10-30
                • 2016-02-21
                相关资源
                最近更新 更多