Visual Studio 2010脚本调试器对我无效。
Visual Studio 2010脚本调试器对我无效。
我刚刚安装了VS 2010 Beta 2,想要尝试一下ASP.NET MVC 2项目。我只是在Home控制器的index.aspx视图中添加了一些脚本(alert(\'hello\');
),并且可以看到它正在执行。然而,当我尝试设置断点时,它从未被触发。我还尝试使用\"debugger\"关键字,但是当我这样做时,我得到一个令人失望的\"当前位置没有源代码可用\"的消息。当我尝试独立附加到我的应用程序运行的IE进程时,我也会收到这个消息。\n我需要做什么才能获得友好的脚本调试体验?(我已经成功使用Firebug调试过,但出于某种原因我更喜欢VS调试器。)\n以下是我的配置细节:\n
- \n
- 我在VS 2010 Beta 2中启动我的项目。
- IE8版本8.0.7600.16385是我的默认浏览器。
- \"禁用脚本调试(Internet Explorer)\"高级选项未勾选。
- \"禁用脚本调试(其他)\"选项未勾选。
- 在我的ASP.NET MVC 2项目的\"web\"属性选项卡中,ASP.NET调试器被勾选,其他都未勾选。
- Visual Studio 2008脚本调试似乎工作得很好。
\n
\n
\n
\n
\n
\n
问题原因:在使用IE进行调试时,VS会在解决方案资源管理器中添加一个名为'Script Documents'的文件夹。在这个文件夹中,有一个名为'Windows Internet Explorer'的文件夹,里面包含了所有加载的js脚本以及当前在IE上显示的(已编译的)HTML文件。在这个HTML文件中的脚本标签上设置断点对我来说是有效的。
解决方法:
1. 确保已正确安装了Visual Studio 2010以及相关的调试工具。
2. 确保已正确设置了IE浏览器作为默认浏览器。
3. 在VS中打开要调试的项目。
4. 在解决方案资源管理器中找到并展开'Script Documents'文件夹。
5. 找到并展开'Windows Internet Explorer'文件夹。
6. 找到加载的js脚本和当前显示的HTML文件。
7. 在HTML文件中的脚本标签上设置断点。
8. 运行项目并在IE浏览器中进行操作,触发断点。
这样,就可以使用Visual Studio 2010的脚本调试器对IE浏览器中的js脚本进行调试了。
问题出现的原因:
- 在脚本标签中设置断点时,无法使IDE停在断点处。
- 添加"debugger;"作为脚本标签中的第一行时,可以使IDE响应,但只会显示不可用的反汇编信息。
- 单击"step into"和"step over"等调试工具时,IDE会进入一些外部脚本(如JQuery和Google Maps)。
解决方法:
- 将JavaScript代码块从视图中移出,并放入一个独立的.js文件中,放置在"Content"文件夹中。
- 添加一个脚本标签来引用这个新的.js文件(url = "/Content/Test.js")。
这样就解决了问题,尽管需要花费一些额外的工作,但也许JavaScript不直接包含在视图中也有一定的好处。希望这是他们打算修复的一个错误。
问题的原因是在使用Visual Studio 2010调试Javascript代码时,如果选择了Silverlight调试器,则会关闭Javascript调试器。
解决方法:
1. 打开项目的属性(Alt+Enter)。
2. 对于Web Site项目:选择"Start Options"。对于Web Application项目:转到Web选项卡,在底部可以看到Debuggers选项。
3. 检查Silverlight复选框是否未选中,以便能够调试Javascript代码。(很遗憾,这里的界面对这个副作用并不清楚)
在解决问题的过程中,有用户提到在MVC3/VS2010中找不到"Start Options"选项,在ASP.net/MVC2项目中也找不到这个选项。另外,还有用户反馈即使禁用了Silverlight调试器,断点仍然无法工作。
原文链接:https://stackoverflow.com/questions/3475886