Visual Studio 2010脚本debugging器不适合我
我刚刚安装了VS 2010 Beta 2,并希望玩一个ASP.NET MVC 2项目。 我只是在Home控制器的index.aspx视图中添加了一些脚本( alert('hello');
),我可以看到它正在执行。 当我尝试设置一个断点时,它不会被打到。 我也尝试使用“debugging器”关键字,当我这样做,我得到一个令人失望的“没有源代码可用于当前位置”消息。 当我尝试独立附加到正在运行应用程序的IE进程时,我也会收到此消息。
我需要做些什么来获得友好的脚本debugging体验? (我已经成功地使用Firebug来debugging,但由于某种原因,我更喜欢VSdebugging器。)
以下是我的configuration的一些细节:
- 我在VS 2010 Beta 2中启动我的东西。
- IE8版本8.0.7600.16385是我的默认浏览器。
- “禁用脚本debugging(Internet Explorer)”高级选项未选中。
- “禁用脚本debugging(其他)”选项未选中。
- 在我的ASP.NET MVC 2项目的“networking”属性选项卡,ASP.NETdebugging器被选中。 所有其他人都没有检查。
- Visual Studio 2008脚本debugging似乎工作得很好。
如果selectSilverlightdebugging器,则debugging器无法同时debuggingSilverlight代码和脚本代码。JavaScriptdebuggingclosures。
- 转到项目的属性(Alt + Enter)。
- 对于网站项目:select“开始选项”。 或者对于Web应用程序:转到Web选项卡,在底部您将看到Debuggers选项。
- 如果您希望能够debuggingJavaScript,请检查Silverlightcheckbox是否勾选。 (不幸的是这里的UI并不清楚这个副作用。)
我遇到了同样的问题。 我无法让IDE甚至在脚本标记内设置的断点处断开。 但是当我添加“debugging器” 因为脚本标签中的第一行能够让IDE做出回应,但是只能说拆解是不可行的。
但是,我可以点击debugging工具,如“步入”和“跳过”。 当我这样做的时候,IDE已经进入了我正在使用的一些外部脚本(JQuery和Google Maps)。 所以我把JavaScript代码块放在视图之外,并把它放到“Content”文件夹中的一个单独的.js文件中。 然后我添加了一个脚本标记来引用这个新的.js文件(url =“/Content/Test.js”)。
它的工作…有点麻烦,你必须经过这个努力,但也许有些东西要说的JavaScript没有直接包含在视图中。 我希望这是他们打算解决的一个错误。
当在IE上进行debugging时,VS似乎将一个名为“脚本文档”的文件夹添加到解决scheme资源pipe理器中。 在这个文件夹里面有另外一个名为“Windows Internet Explorer”的文件夹,在里面我可以看到所有加载的js脚本和当前在IE上显示的(编译的)HTML文件。 在这个HTML文件的脚本标记上设置断点确实对我有效。
要解决这个问题,请转到项目属性,然后select“开始选项”。 然后检查本地代码checkbox。 并取消选中Silverlightcheckbox,因为这两个选项不能一起工作。
CTRL + ALT + P(附加到进程),selectIE,select“脚本”作为debuggingtypes。
正如Ryan上面提到的,我将脚本移到了Scripts文件夹下的一个单独的文件中。 我还添加了debugging到脚本的名称,所以它成为MyTestScript。 debugging .js。 我通过脚本标记包含脚本,并可以在debugging器命中的脚本文件中设置断点。
我发现Google Chrome开发者工具可以完美地显示JavaScript。 在我的情况下,我通常使用jQuery的getScript函数加载脚本,并且在加载页面或处理事件时,通常通过jQuerycallback来执行代码。 在Visual Studio 2010中,我经常遇到“无源”错误。 悲伤我需要Chrome来debuggingJavaScript,这是我的Visual Studio项目的一部分。
使用单独的js文件有其缺点。 例如,你不能使用MVC助手。 微软真的需要弄清楚这一点。
即使您包含参考注释,Intellisense也不能在视图上的脚本块中正常工作:
/// <reference path="/Scripts/jquery-1.6-vsdoc.js" /> /// <reference path="/Scripts/jquery-1.6.js" />
尽pipe如此,智能感知在js文件中工作正常。