【问题标题】:File imported into App_Code isn’t referenced未引用导入 App_Code 的文件
【发布时间】:2009-04-26 19:18:46
【问题描述】:


第一季度

A) 我创建了一个新的 .cs 文件,在其中声明了一个类,然后将其保存在我的光盘上。现在根据我的书,我应该可以将此文件导入网站应用程序的 App_Code 文件夹(通过网站->添加现有项目。顺便说一句 - 由于文件被复制到网站的根文件夹中,我不得不移动它手动进入 App_Code 文件夹),该文件将被网站中的所有页面自动编译和引用。但事实并非如此,因为当我尝试在 aspx 页面中使用此类时,我收到编译时错误,提示 “找不到类型或命名空间”

由于作者可能知道他的东西,因此可以肯定地认为我做错了什么


B) 如果您构建类库并希望从某个 Web 应用程序中引用该组件,您可以通过 Website --> Add Reference 完成此操作。但是当你构建类库时,VS 会创建两个 dll,一个位于 Bin 文件夹中,另一个位于 obj/debug 文件夹中。我假设我应该添加对包含在 Bin 中的 dll 的引用,而不是对包含在 obj/debug 中的 dll 的引用?如果有,为什么?


感谢


编辑:


我没有遗漏任何信息,因此希望以下信息足够:


我首先创建了一个名为 Class1.cs 的文件,将以下代码放入该文件中,并将其保存在我的磁盘上的某个位置。这是Class1.cs的代码:

using System;

namespace class1
{
     public class Class1
     {
           public static string someString = "this is Class1";
     }
}


然后我将 Class1.cs 复制到我网站的 App_Code 文件夹中。该网站只有一个 aspx 页面及其代码隐藏文件。无论如何,在将 Class1.cs 复制到 App_Code 文件夹后,我尝试从代码隐藏文件中引用它:

using class1;

public partial class _Default : System.Web.UI.Page    
{
     protected void Page_Load(object sender, EventArgs e)
     {
           Label1.Text = Class1.someString; //this won’t compile
     }
}

【问题讨论】:

    标签: c# .net asp.net assemblies


    【解决方案1】:

    对于第一个问题,我们需要更多的上下文。您可以发布类定义或至少是标题吗?还有它被引用的地方?

    对于第二个问题,使用 bin\Debug 之外的问题。 obj 文件夹主要由编译器和编译系统使用,用于存放在编译过程中使用的临时文件。这些文件在许多方面都是临时的,可以通过许多操作删除。最好依赖 bin\debug 中的文件。

    【讨论】:

      【解决方案2】:

      第一个问题的答案是:

      • 右键单击App_Code文件夹中的.cs文件并检查其属性
      • 确保 Build Action 设置为 Compile

      【讨论】:

        【解决方案3】:

        对于第一个问题,尝试右键单击您的 App_Code 文件夹并从该菜单中添加一个新类。然后从旧文件中复制您的代码。看看情况如何。

        第二个问题。听起来您已经添加了“项目参考”。 当您这样做时,Visual Studio 会在构建时自动将 DLL 从类库输出文件夹(在本例中为 obj/debug)复制到 Web 应用程序 Bin 文件夹中。如果添加了项目引用,则无需直接添加对 DLL 的其他引用。

        【讨论】:

        • 您好,我尝试按照您建议的方式添加它,但仍然无效关于您的第二个答案 - 问题 B 与问题 A 无关
        • 如果DLL在目标项目的Bin文件夹下,一般是因为项目引用了类库。
        • 我明白这一点。但是关于问题A,我在目标页面的Bin文件夹中没有dll,因为Class1.cs不是一个类库,而只是一个.cs文件。
        【解决方案4】:

        对于您的 1. 问题:从 app_code 剪切 .cs 文件,将它们粘贴到根目录。 更改 .cs 文件名。更改要编译的 .cs 文件内容的属性。编译您的项目,然后您可以将它们添加回 app_code 文件夹。

        【讨论】:

          猜你喜欢
          • 2012-05-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-17
          • 1970-01-01
          • 1970-01-01
          • 2013-05-17
          • 1970-01-01
          相关资源
          最近更新 更多