所以我在我正在设计的新网站上遇到一个非常奇怪的App_Code文件夹问题。
我在App_Code文件夹中的命名空间内有一个基本类。当我设置命名空间并从类中创建一个对象时,在IDE中一切正常。它会显示有关悬停的类摘要,当您单击“转到deffinition”时,它将转到类文件。 它也适用于当地。
但是,当我将网站加载到我的服务器上时,我在访问该页面时收到此错误消息:
第10行:使用System.Web.UI.WebControls;
第11行:使用System.Web.UI.WebControls.WebParts;
第12行:使用xxxx.xxxx
编译器错误消息: CS0246:找不到类型或命名空间名称“xxxxxx”(您是否缺少using指令或程序集引用?)
我知道类文件存在的事实。任何人都知道最近会发生什么?
编辑:
John,是的,这是一个2.0网站。
答案 0 :(得分:66)
您的类未编译的问题,您只需转到App_Code文件夹中任何类的属性并将其“Build Action”属性从“Content”更改为“Compile”即可解决此问题
答案 1 :(得分:22)
如果您的应用程序是Web应用程序项目而不是Web站点项目,则代码文件不应位于App_Code文件夹中(我知道这是愚蠢的设计)。创建一个名为code或something的新文件夹并将其放在那里。
当我将一堆旧的.Net网站升级到应用程序项目时,它给我带来了各种各样的问题。
答案 2 :(得分:2)
这恰好发生在我身上,解决方案是App_Code(和App_Data)没有放在服务器的根目录中,而是放在其他所有内容的子文件夹中。必须是root!
答案 3 :(得分:1)
我注意到,只要在引用的程序集或代码文件中发生编译时错误,IDE解析器和编译器之间就会出现不匹配。在这种情况下,IDE将正确识别类型并为它们提供完全支持,但由于编译器无法创建引用的对象,因此它会抱怨引用的对象不存在。
现在我不想指责任何人 - 这只是猜测 - 但你应该确保你引用的代码文件中没有任何错误。
答案 4 :(得分:1)
根据您发布网站的方式,它不会在App_Code中查找,它会在Bin文件夹中查找包含该类的DLL。你是如何将网站转移到服务器的?
答案 5 :(得分:0)
对于那些跟随...我有同样的问题,但它是因为我在App_Code中命名了一个类,'HTML'。花了很长时间才发现这只是一个名称冲突,因为编译器对于告诉我问题是什么并不是很有帮助。