App_Code文件夹问题
因此,在我正在设计的新网站上,我的App_Code文件夹存在一个非常奇怪的问题。
我在App_Code文件夹中的名称空间内有一个基本类。当我设置名称空间并从类中创建一个对象时,IDE中的所有功能都可以正常工作。它会在悬停时显示类摘要,当我们单击"转到定义"时,它将转到类文件。
而且它在本地环境中也很好用。
但是,当我将站点加载到服务器上时,访问该页面时会收到以下错误消息:
第10行:使用System.Web.UI.WebControls;
第11行:使用System.Web.UI.WebControls.WebParts;
第12行:使用xxxx.xxxx
编译器错误消息:CS0246:找不到类型或者名称空间名称" xxxxxx"(是否缺少using指令或者程序集引用?)
我知道有一个类文件。任何人都知道发生了什么事吗?
编辑:
约翰,是的,这是一个2.0站点。
解决方案
如果应用程序是Web应用程序项目而不是Web站点项目,则代码文件不应位于App_Code文件夹中(我知道这是愚蠢的设计)。创建一个名为code或者诸如此类的新文件夹,并将其放入其中。
当我将一堆旧的.Net网站升级到应用程序项目时,这引起了我各种各样的问题。
每当引用的程序集或者代码文件中发生编译时错误时,我就会注意到IDE解析器和编译器之间有时会出现不匹配的情况。在这种情况下,IDE会正确识别类型并为其提供全面支持,但是由于编译器无法创建引用的对象,因此它将抱怨引用的对象不存在。
现在,我不想指责任何人,这只是一个猜测,但是我们可能应该确保所引用的代码文件中没有任何错误。
根据我们发布网站的方式,它不会出现在App_Code中,而是会在Bin文件夹中查找包含该类的DLL。我们是如何将网站转移到服务器的?
这只是发生在我身上,解决方案是App_Code(和App_Data)没有放在服务器的根目录中,而是放在一个存放其他所有内容的子文件夹中。必须扎根!
类未编译的问题,我们只需通过转到App_Code文件夹中任何类的属性并将其" Build Action"属性从" Content"更改为" Compile"即可解决此问题。