Visual Studio 2012 JavaScript Intellisense不起作用

18
我在我的笔记本电脑和台式电脑上都安装了Visual Studio 2012。但是在我的台式电脑上,JavaScript智能感知功能无法使用。对于任何方法(即使是标准的JavaScript调用),我都会收到消息:“智能感知无法确定此表达式的准确完成列表”。我尝试了其他帖子中的所有建议,并尝试了Google上找到的所有内容,但仍然没有解决。这不是关于缺少JQuery智能感知的问题,我甚至无法获得基本的JavaScript智能感知。

I'd post an image but as a new user it won't let me. enter image description here

上述图像中的对象是简单字符串,但我没有得到任何来自Intellisense的帮助。

我知道这很糟糕,但你尝试过重新安装/修复VS吗?我曾经遇到一些非常奇怪的问题,就是通过这种方式解决的。如果对大多数人有效的方法对你无效,那么这是一个好的指示,是时候尝试一下了。此外,您可能希望尝试不加载任何附加组件,以消除这种可能性。有时,特别是代码辅助插件会对智能感知产生奇怪的影响。 - Frank Thomas
感谢您的回复,Big Hurt。我尝试了卸载并重新安装VS2012。我认为我没有进行干净的重新安装,因为在重新安装后打开VS2012时,所有设置都与卸载之前相同(即我的IDE以自定义方式配置)。 - EL MOJO
你能展示/告诉我们你如何放置JS文件吗? - Ray Cheng
他们在一个旧版项目(VS2012之前)中,位于名为“Scripts”的文件夹中。我无法相信文件结构是问题所在,因为在另一台计算机上,该项目/文件的Intellisense可以正确解析。 - EL MOJO
这里是VS2013。重启解决了我的问题。(ASP.NET MVC 4项目) - Daniel Szabo
6个回答

21

我有同样的问题:在Visual Studio 2010中,我习惯在我的JavaScript文件顶部添加引用,就像这样:

/// <reference path="/scripts/jquery-1.7.1-vsdoc.js" />

使用新版的Visual Studio 2012时,这个方法已经不再适用了。我查找了解决方案,将引用放在/scripts/_references.js中。但是还是没有效果。

我的错误在于,我引用了vsdoc.js文件,或者说,当时我使用了nuget下载jquery 1.9.1包,并且引用了jquery-1.9.1.intellisense.js文件,这是错误的做法。

如果要使用/scripts/_references.js文件进行引用,则正确的方式是:

/// <reference path="/scripts/jquery-1.9.1.js" />
(不是.intellisense.js或-vsdoc.js文件)要使全局解决方案适用于您的所有项目:将所有jquery文件(主文件、缩小版、映射文件和intellisense文件,以确保)复制到C:\Program Files (x86)\Microsoft Visual Studio 11.0\JavaScript\References中(如果您在其他地方安装了Visual Studio 2012,请调整路径),然后在Visual Studio中,在Tools > Options > Text Editor > Javascript > Intellisense > References > 中添加对jquery-1.9.1.js的引用(再次强调:不是vsdoc或intellisense文件,而是主文件),如denas的解决方案所述(但没有明确说明不要指向vsdoc/intellisense文件)。
希望这可以帮到您。

我仍然在使用VS 2012时遇到了一些问题,至少是极小的。我已经按照这里许多帖子的建议做了,使HTML和基本AngularJS智能感知功能可用,但仍有一些无法识别的内容,Visual Studio看起来还是很混乱,或者也许只是我自己困惑了吧。http://stackoverflow.com/questions/29477583/vs-2012-javascript-intellisense-for-angular-still-getting-warnings - bitshift
@bitshift,你现在可以免费获取Visual Studio 2013社区版了。是时候升级了吗?https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx 阅读问答:个人开发者可以免费使用。在小公司中,最多5个用户可以使用它。在大型(企业)公司中,拥有超过250台PC和年收入超过1M的公司可以向老板申请;) - firepol

3
许多问题都可能导致这种情况,但我通常按照以下步骤来解决:
  1. 关闭 Visual Studio 并重新启动
  2. 重启 Windows 并再次启动 Visual Studio
  3. 让另一个开发人员加载您的项目并进行测试
  4. 创建一个简单的项目,并使用所有默认的 JavaScript 引用进行测试
  5. 重置 IDE
  6. 安全模式下运行VS,并测试您的项目
  7. 卸载并重新安装 VS
通常我会在第三或第四步解决大部分的 VS 问题,有时候需要进行第五步。

谢谢 Ray,我会试一下然后告诉你。 - EL MOJO
我尝试了你建议的所有选项,Ray。我无法执行第4步,因为我没有另一个开发人员。该项目在我的笔记本电脑上可以正常打开,并能够进行适当的JS智能感知。因此问题必须出现在我的台式电脑上。我尝试卸载和重新安装VS2012。我认为我没有进行干净的重新安装,因为在重新安装后打开VS2012时,所有设置都与卸载之前相同(即我的IDE以我的自定义方式配置)。 - EL MOJO
如果在重新安装之前或之后重置了IDE,则您的自定义设置应该会消失。此外,您还可以尝试卸载TOOLS->扩展下的所有第三方工具...有时,这些工具也会引起问题。 - Ray Cheng

2
如果您在C盘以外的其他位置安装了VS,则会发生这种情况。
在Visual Studio中,转到“工具”>“选项”>“文本编辑器”>“JavaScript”>“智能感知”>“引用”。
添加引用到与列表中存在的相同.js文件,但指向您安装VS的新路径。
例如- G:\Program Files\Microsoft Visual Studio 11.0\JavaScript\References.libhelp.js。
其中有5个。
完成此操作后,转到“编辑”>“智能感知”>“刷新外部引用”。

0

0

我通过在“解决方案资源管理器”中右键单击文件并选择“打开方式”,然后选择“Web表单编辑器”(如果你正在编辑Web表单)或“源代码(文本)编辑器”(如果你正在编辑JavaScript文件),来解决了相同的问题。


Steve,我按照你的建议尝试了,但是没有起作用。谢谢你的意见。 - EL MOJO
为了确保不是代码的问题,请尝试以下内容:var d = new Date(); d. 您是否看到了Date的方法?如果没有,Ctrl,Shift J是否显示了这些方法? - Steve Mannina

0

由 Mads Kristensen 撰写的优秀文章帮助我解决了 JavaScript 智能感知问题。

三斜杠引用看起来像这样,可以添加到任何 .js 文件的顶部或 /scripts/_references.js 文件中。

/// <reference path="../app/respond.js" />

参考:http://madskristensen.net/post/the-story-behind-_referencesjs


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接