VS2010中App_Code中的Intellisense

9
我刚刚将我的Web应用程序从VS2008升级到了VS2010,我在VS2010中创建了一个新的Web应用程序,然后复制了所有现有文件从VS2008中,并将一个新类文件添加到App_Code文件夹中。智能感知(intellisense)无法正常显示所有内容,类也没有以正确的颜色显示。但是,当我从VS2008打开现有的类时,智能感知就可以正常工作,并且所有的类也以不同的颜色显示。如果我复制现有的类,复制的类也不支持智能感知。但是,如果我关闭VS并重新打开它,它们似乎都支持现有类的智能感知,但是一旦我创建了一个新类,智能感知就会失效。你能告诉我这里出了什么问题吗?谢谢。

你是创建了一个网站(文件->新建网站)还是Web应用程序项目(文件->新建项目->ASP.NET Web应用程序)? - John Saunders
3个回答

19

检查你的类的编译操作是否设置为“编译”(在解决方案资源管理器中右键单击类并单击属性)。

显然,当你将类添加到App_code文件夹时,默认情况下将构建操作设置为内容。

来自Microsoft在connect.microsoft.com上于2008年8月19日的一个关于此问题的故障报告的文章

感谢反馈。这实际上是Visual Studio的设计。 在Web应用程序项目中不支持App_Code--仅支持Web站点(由于架构原因)。当您将类文件添加到App_Code文件夹中时, 该文件将被添加为“内容”,而不是“编译”,因此您不应获得intellisense。所以,当你将它移出你的App_Code文件夹后, 它将保持为“内容”类型,不会被编译,因此继续没有智能感知功能。要解决此问题,将文件移动到App_Code之外, 选择该文件,在属性网格中更改构建操作为“编译”。

谢谢, - Visual Web Developer团队

请注意,尽管在文章中说要移动文件并更改构建操作,但实际上你不需要移动文件,只需更改构建操作即可。


2

按照以下步骤进行:

  1. 右键单击 .cs 文件,然后单击“属性”。
  2. 在“属性”窗口中,您可以找到“生成操作”属性。默认情况下,它被选择为“内容”。将其更改为“编译”选项。

0

在安装了一些更新后,我遇到了同样的问题。唯一的解决方案是重新安装vs2010。

另外,尝试重置设置:工具->导入和导出设置


1
最终我重启了VS,似乎一切都恢复了。不确定原因,可能是从VS2008迁移项目时出现了一些bug等。 - nikok

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