29

因此,我正在设计的新网站上的 App_Code 文件夹存在一个非常奇怪的问题。

我在 App_Code 文件夹的命名空间中有一个基本类。当我设置命名空间并从类中创建一个对象时,IDE 中的一切工作正常。它会在悬停时显示类摘要,当您单击“转到定义”时,它会转到类文件。它在本地也可以正常工作。

但是,当我将网站加载到我的服务器上时,我在访问该页面时收到此错误消息:

第 10 行:使用 System.Web.UI.WebControls;
第 11 行:使用 System.Web.UI.WebControls.WebParts;
第 12 行:使用 xxxx.xxxx

编译器错误消息: CS0246:找不到类型或命名空间名称“xxxxxx”(您是否缺少 using 指令或程序集引用?)

我知道类文件在那里。有人知道发生了什么吗?

编辑:

约翰,是的,它是一个 2.0 站点。

4

6 回答 6

66

您的类未编译的问题,您只需转到 App_Code 文件夹中任何类的属性并将其“构建操作”属性从“内容”更改为“编译”即可解决此问题

于 2010-11-11T21:16:12.153 回答
22

如果您的应用程序是 Web 应用程序项目而不是网站项目,则代码文件不应位于 App_Code 文件夹中(我知道这是愚蠢的设计)。创建一个名为 code 或其他东西的新文件夹并将它们放在那里。

当我将一堆旧的 .Net 网站升级为应用程序项目时,它给我带来了各种各样的问题。

于 2008-09-18T03:23:16.520 回答
2

这只是发生在我身上,解决方案是 App_Code(和 App_Data)没有放在服务器的根目录中,而是放在包含其他所有内容的子文件夹中。必须在根!

于 2010-10-29T19:26:12.440 回答
1

每当在引用的程序集或代码文件中发生编译时错误时,我注意到 IDE 解析器和编译器之间有时会出现不匹配。在这种情况下,IDE 将正确识别类型并为它们提供完全支持,但由于编译器无法创建引用的对象,它会抱怨引用的对象不存在。

现在我不想指责任何人——这只是一个猜测——但你可能应该确保你引用的代码文件中没有任何错误。

于 2008-09-18T03:53:21.847 回答
1

根据您发布站点的方式,它不会在 App_Code 中查找,而是在包含该类的 Bin 文件夹中查找 DLL。您是如何将您的网站传输到服务器的?

于 2008-10-04T21:53:49.813 回答
0

对于后面的那些......我遇到了同样的问题,但这是因为我在 App_Code 中命名了一个类“HTML”。花了很长时间才弄清楚这只是名称冲突,因为编译器在告诉我问题所在方面没有多大帮助。

于 2015-05-27T15:59:08.090 回答