为啥没有正确找到我的 App_Code 文件夹中子文件夹中的类?
Posted
技术标签:
【中文标题】为啥没有正确找到我的 App_Code 文件夹中子文件夹中的类?【英文标题】:How come classes in subfolders in my App_Code folder are not being found correctly?为什么没有正确找到我的 App_Code 文件夹中子文件夹中的类? 【发布时间】:2010-09-14 09:10:43 【问题描述】:当我将类文件放在 App_Code 文件夹的子文件夹中时出现以下错误:
errorCS0246:找不到类型或命名空间名称“MyClassName”(您是否缺少 using 指令或程序集引用?)
这个类根本不在命名空间中。有什么想法吗?
【问题讨论】:
【参考方案1】:您需要将 codeSubDirectories 添加到 web.config 中的编译元素
<configuration>
<system.web>
<compilation>
<codeSubDirectories>
<add directoryName="View"/>
</codeSubDirectories>
</compilation>
</system.web>
</configuration>
【讨论】:
【参考方案2】:检查文件的 BuildAction 属性。这应该设置为“编译”
【讨论】:
【参考方案3】:您是否可能没有将文件夹设置为 IIS(或您的 Web 服务器)中的应用程序?如果不是,则使用的 App_Code 来自 parent 文件夹(或下一个应用程序向上)。
确保该文件夹被标记为应用程序,并使用正确版本的 ASP.NET。
【讨论】:
我的 App_Code 文件夹中的类直接工作,如果我把 App_Code/View 或其他东西放在 View Sub-Directory 中的类的错误【参考方案4】:这可能不是正确的方法,但我觉得它最简单。
像往常一样在主文件夹中创建类,然后用鼠标将其移动到子文件夹。重新编译,应该没问题。
【讨论】:
【参考方案5】:当您将文件夹添加到您的 app_code 时,如果我没记错的话,它们会被不同的命名空间分隔,使用默认命名空间作为根,然后为每个文件夹添加。
【讨论】:
【参考方案6】:在 Visual Studio(至少 2010 年,但我也记得过去的版本)中,您可以在解决方案资源管理器中右键单击文件夹,然后选择“包含在项目中”。
然后在每个文件的属性选项卡上(或一次选择所有文件),为“构建操作”属性选择“编译”。
这对我有用。
【讨论】:
以上是关于为啥没有正确找到我的 App_Code 文件夹中子文件夹中的类?的主要内容,如果未能解决你的问题,请参考以下文章
一个类放在App_Code中要用时可以直接找到,但是放在别的文件夹下怎么找不到了,怎么才能找到