6

我在/App_Code/App_Code/[subfolder]中创建的任何类都没有本地智能感知。App_Code中缺少Intellisense,用于网站项目中的bin dll

这就是 - 我有系统dll的智能感知,如字符串。[成员]等。但不能让它识别App_Code本身的任何类(包括本身),或在/ bin文件夹中引用的dll。

虽然我确实在成员函数的范围内有intellisense。 (即局部变量或函数参数)

NB

  • 这是一个网站项目,而不是一个Web应用程序项目。
  • 我已尝试重置所有Visual Studio设置并清除在AppData中找到的智能感知信息。
  • 我使用Visual Studio 2012 ver。 11.0.61030.00更新4
  • 该项目使用.NET 4.0
  • 如果我移动App_code文件夹以外的类,他们完全注册在intellisense中。
  • 由于这是一个网站项目而不是Web应用程序,因此无法将文件的生成设置设置为编译。
+1

这些类是否在命名空间中? – DeadlyChambers

+0

@DeadlyChambers,他们不是,但我已经尝试将它们添加到一个,没有成功。 – Jono

回答

2

IMO,你应该将你的代码移出App_Code。在.net 4.5(和4.0)中,你的后台代码被编译为一个dll,所以我没有看到将代码放入App_Code的好处。如果有人建议不同,我很有兴趣听到。

就是说,在你的根项目下创建一个或多个文件夹,并把你的代码放在那里。

MyWebsite 
- DataLayer 
    MyDataLayer.cs 
Default.aspx 

在这个例子中,你将能够访问你的类DataLayer.MyDataLayer

更妙的是创建一个未在文件后面您aspx.cs代码所需的代码一个新库。

+0

然后跟进,为什么App_code在那里呢? – Jono

+0

App_code中的代码在运行时才会被编译。它将存储源代码而不是编译代码。但正如我所说,我没有看到好处。我和你有同样的问题。创建文件夹并将代码放在那里更容易。请参阅http://msdn.microsoft.com/en-us/library/t990ks23(v=vs.90).aspx – PhillyNJ

2

App_Code中的新代码文件将具有构建操作“内容”,因此您没有智能感知。 因此,右键单击您的代码文件并单击属性窗口中的“属性”,将“生成操作”更改为“编译”。

然后重新打开您的代码文件。

+0

我正在使用Visual Studio 2012,它在属性窗口中没有此选项。你知道这些每个文件属性通常存储在VS中读取吗?解决方案文件可能? – Jono

+0

是的,我是sry。 2010年仍然有可能。我刚刚在2013年进行了测试,并且在类文件的属性窗口中没有“Build Action”。 – modiX