C# 从App_代码文件夹中找不到类型或命名空间

C# 从App_代码文件夹中找不到类型或命名空间,c#,asp.net,C#,Asp.net,我在项目的App_code文件夹中编写了一个名为ArchivedFilesWrapper的类,但是当我在另一个文件夹中的另一个文件中使用该类时,我发现错误: 找不到类型或命名空间名称“ArchivedFilesWrapper”(是否缺少using指令或程序集引用?) 我认为每个页面都应该能够找到包含在同一个项目中的类,但我想情况并非如此。有人能告诉我我需要什么样的使用声明吗 以下是我的课堂上的一个片段: using System; using System.Collections.Generic

我在项目的App_code文件夹中编写了一个名为ArchivedFilesWrapper的类,但是当我在另一个文件夹中的另一个文件中使用该类时,我发现错误:

找不到类型或命名空间名称“ArchivedFilesWrapper”(是否缺少using指令或程序集引用?)

我认为每个页面都应该能够找到包含在同一个项目中的类,但我想情况并非如此。有人能告诉我我需要什么样的使用声明吗

以下是我的课堂上的一个片段:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace EMCWebAdmin.App_Code
{
    public class ArchivedFilesWrapper
    {
您需要添加

using EMCWebAdmin.App_Code;
您希望能够使用该类的所有页面

或者,将类所在的名称空间更改为所有网页使用的名称空间,假定该名称空间为EMCWebAdmin

然后在你的课堂上改变

namespace EMCWebAdmin.App_Code
    {
...

这是visual studio的一项功能,如果在文件夹结构中创建类,它将使用文件夹结构后面的命名空间。

您需要添加

using EMCWebAdmin.App_Code;
您希望能够使用该类的所有页面

或者,将类所在的名称空间更改为所有网页使用的名称空间,假定该名称空间为EMCWebAdmin

然后在你的课堂上改变

namespace EMCWebAdmin.App_Code
    {
...


这是visual studio的一项功能,如果您在文件夹结构中创建类,它将使用文件夹结构后面的命名空间。

如果您将其转换为web应用程序,它应该可以工作。缺点是,每次您更改应用程序并启动应用程序时,它将不再在app_code文件夹中自动生成代码。我从未见过专业的开发者使用网站项目。我不知道MS在创建它们时瞄准的是谁。

如果你将其转换为web应用程序,它应该可以工作。缺点是,每次您更改应用程序并启动应用程序时,它将不再在app_code文件夹中自动生成代码。我从未见过专业的开发者使用网站项目。我不知道MS创建Calss时的目标用户是谁。

是的,将Calss放在另一个文件夹(不是asp.net特殊文件夹)中,仅使用应用程序的主命名空间即可解决此问题。
谢谢johnmcp。

是的,请将Calss放到另一个文件夹(不是asp.net特殊文件夹)中,并且仅使用应用程序的主命名空间来解决此问题。
感谢johnmcp。

也许可以通过将*.cs源文件的构建操作属性更改为编译内容来解决问题。在解决方案资源管理器中,右键单击源文件并选择“属性”

请注意,应用程序代码文件夹用于网站项目

请注意,对于Web应用程序项目MVC项目,将应用程序代码文件夹添加到项目中并将*.cs文件放入其中会导致问题。我无意中从解决方案资源管理器向我的MVC项目添加了一个App\u Code文件夹。VS默认将名称空间设置为MyProjectName.App_代码。在本例中,Visual Studio 2012将生成操作默认为内容,即使类型为.cs代码。在我将*.cs源文件的构建操作属性内容更改为编译后,命名空间在项目的其他文件夹位置解析。但是由于问题,我不得不更改文件夹的名称——请参见下文

重要


在MVC或Web应用程序项目中,App_Code文件夹很麻烦,因为它具有网站项目类型语义。此文件夹在发布(部署)到服务器时编译。通过将构建操作从内容更改为编译,您可以通过强制立即编译来解决开发环境中的命名空间问题,但当第二次编译导致部署时两次定义的
对象出现错误时,您会遇到麻烦。将代码文件放在具有不同名称的文件夹中。如果您将一个网站转换为一个Web应用程序,请参阅网上的相关指南——不在本问题的范围内。要阅读有关不同项目类型中的应用程序代码文件夹的更多信息

也许可以通过将*.cs源文件的构建操作属性更改为内容编译来解决此问题。在解决方案资源管理器中,右键单击源文件并选择“属性”

请注意,应用程序代码文件夹用于网站项目

请注意,对于Web应用程序项目MVC项目,将应用程序代码文件夹添加到项目中并将*.cs文件放入其中会导致问题。我无意中从解决方案资源管理器向我的MVC项目添加了一个App\u Code文件夹。VS默认将名称空间设置为MyProjectName.App_代码。在本例中,Visual Studio 2012将生成操作默认为内容,即使类型为.cs代码。在我将*.cs源文件的构建操作属性内容更改为编译后,命名空间在项目的其他文件夹位置解析。但是由于问题,我不得不更改文件夹的名称——请参见下文

重要

在MVC或Web应用程序项目中,App_Code文件夹很麻烦,因为它具有网站项目类型语义。此文件夹在发布(部署)到服务器时编译。通过将构建操作从内容更改为编译,您可以通过强制立即编译来解决开发环境中的命名空间问题,但当第二次编译导致部署时两次定义的
对象出现错误时,您会遇到麻烦。将代码文件放在具有不同名称的文件夹中。如果将网站转换为Web应用程序