2008-09-18 78 views
28

所以我在我正在设计的一个新网站上对我的App_Code文件夹有一个非常奇怪的问题。App_Code文件夹问题

我有一个App_Code文件夹中的名称空间内的基本类。当我设置命名空间并从类中创建一个对象时,在IDE中一切正常。它提出了关于悬停的课程摘要,当你点击“去定义”时,它会进入类文件。 而且它也很好地运作。

然而,当我加载网站到我的服务器,我当我访问该页面收到此错误信息:

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

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

我知道类文件在那里。任何人都知道发生了什么事?

编辑:

约翰,是的,它是2.0网站。

+0

您是如何将网站发布到服务器的? – Kev 2008-09-18 03:04:24

回答

18

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

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

+0

值得注意的是,如果您只需将代码文件拖出App_Code文件夹并将其放入新文件夹,则其构建操作属性可能仍会设置为内容,而其他应用程序将无法看到名称空间,因为其中一个答案提到下面设置这个编译将对此进行排序,我认为默认情况下在App_Code文件夹中创建的任何类文件都将设置为构建action = content,即使在WAP项目中也是如此。 – JsonStatham 2014-07-09 09:19:17

+0

真是浪费时间!只有6个月的头痛!感谢发布! +1 http://stackoverflow.com/questions/26135251/catch-exceptions-in-asp-net-resulting-from-generic-handler-ashx-file/26136417#26136417 – MacGyver 2015-05-05 02:51:59

1

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

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

1

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

2

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

63

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

0

对于那些遵循...我有同样的问题,但它是因为我在App_Code中命名一个类,'HTML'。花了很长时间才发现这只是一个名称冲突,因为编译器对告诉我问题是什么并不是很有帮助。