导入到App_Code的文件未被引用

时间:2009-04-26 19:18:46

标签: c# .net asp.net assemblies


Q1

A)我创建了一个新的.cs文件,在其中声明了一个类,然后将其保存在我的光盘上。现在根据我的书,我应该能够将这个文件导入到网站应用程序的App_ Code文件夹中(通过网站 - >添加现有项目.BTW - 因为文件被复制到网站的根文件夹中,我不得不移动它手动进入App_Code文件夹),文件将自动编译并被网站中的所有页面引用。但事实并非如此,因为当我尝试在aspx页面中使用这个类时,我得到编译时错误,说“无法找到Type或Namespace”

由于作者可能知道他的东西,可以安全地假设我做错了


B)如果您构建类库并希望从某个Web应用程序引用此组件,则可以通过 Website - >完成此操作。添加参考。但是当你构建类库时,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
     }
}

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

第一个问题的解决方案是:

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

答案 2 :(得分:1)

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

对于第二个问题。听起来好像你已经添加了一个“项目参考”。 执行此操作时,Visual Studio会在构建时自动将DLL从类库文件输出文件夹(在本例中为obj / debug)复制到Web apps Bin文件夹中。如果添加了项目引用,则无需直接向DLL添加其他引用。

答案 3 :(得分:0)

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