关于未使用(和引用)程序集的程序集引用错误,为什么我会出现此错误?

时间:2014-06-12 09:45:03

标签: c# .net inheritance .net-assembly

在我的解决方案中,我有三个项目(Web,业务和数据)都针对.net 4.5.1。 Web引用业务和业务参考数据。

我需要在这三个项目中执行一个初始化方法,具体取决于应用程序的启动。所以我在所有项目中都创建了一个Boot类。

Business中的Boot类继承自Web中的Data类和Boot类继承自Business中的Boot类

所以我有这段代码:

在数据项目中:

namespace Data
{
    public class Boot
    {
        public Boot() 
        {
            // init execution
        }
    }
}

在商业项目中:

namespace Business
{
    public class Boot : Data.Boot
    {
        public Boot() : base()
        {
            // init execution
        }
    }
}

在Web项目中:

namespace Web
{
    public class Boot : Business.Boot
    {
        public Boot() : base()
        {
            // init execution
        }
    }
}

当我编译时,我的Web项目中的Boot类出错:

  

“Data.Boot”类型在未引用的程序集中定义。您必须添加对程序集'Data,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'的引用

我不明白为什么我的Web项目需要引用我的Data项目..它从不直接使用Data.Boot ..

2 个答案:

答案 0 :(得分:2)

您必须在Web和业务项目中添加对数据项目的引用。在您的情况下,您的网络层依赖于业务层数据层。

总结:

  • Web项目引用业务项目和数据项目
  • 业务参考数据项目

答案 1 :(得分:0)

您必须检查Business项目中是否引用了数据DLL,如果是,则必须清理解决方案并重建它