C# 未使用(和引用)程序集上的程序集引用错误,为什么我会遇到此错误?

C# 未使用(和引用)程序集上的程序集引用错误,为什么我会遇到此错误?,c#,.net,inheritance,.net-assembly,C#,.net,Inheritance,.net Assembly,在我的解决方案中,我有三个项目(Web、业务和数据),它们都以.NET4.5.1为目标。 Web引用业务和业务引用数据 我需要在这三个项目中执行初始化方法,具体取决于应用程序的启动。所以我在所有项目中都创建了一个引导类 业务中的引导类继承自数据中的引导类,Web中的引导类继承自业务中的引导类 所以我有这个代码: 在数据项目中: namespace Data { public class Boot { public Boot() {

在我的解决方案中,我有三个项目(Web、业务和数据),它们都以.NET4.5.1为目标。 Web引用业务和业务引用数据

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

业务中的引导类继承自数据中的引导类,Web中的引导类继承自业务中的引导类

所以我有这个代码:

在数据项目中:

namespace Data
{
    public class Boot
    {
        public Boot() 
        {
            // init execution
        }
    }
}
namespace Business
{
    public class Boot : Data.Boot
    {
        public Boot() : base()
        {
            // init execution
        }
    }
}
namespace Web
{
    public class Boot : Business.Boot
    {
        public Boot() : base()
        {
            // init execution
        }
    }
}
在商业项目中:

namespace Data
{
    public class Boot
    {
        public Boot() 
        {
            // init execution
        }
    }
}
namespace Business
{
    public class Boot : Data.Boot
    {
        public Boot() : base()
        {
            // init execution
        }
    }
}
namespace Web
{
    public class Boot : Business.Boot
    {
        public Boot() : base()
        {
            // init execution
        }
    }
}
在Web项目中:

namespace Data
{
    public class Boot
    {
        public Boot() 
        {
            // init execution
        }
    }
}
namespace Business
{
    public class Boot : Data.Boot
    {
        public Boot() : base()
        {
            // init execution
        }
    }
}
namespace Web
{
    public class Boot : Business.Boot
    {
        public Boot() : base()
        {
            // init execution
        }
    }
}
当我编译时,我在Web project中的引导类上有一个错误:

namespace Data
{
    public class Boot
    {
        public Boot() 
        {
            // init execution
        }
    }
}
namespace Business
{
    public class Boot : Data.Boot
    {
        public Boot() : base()
        {
            // init execution
        }
    }
}
namespace Web
{
    public class Boot : Business.Boot
    {
        public Boot() : base()
        {
            // init execution
        }
    }
}
类型“Data.Boot”是在未引用的程序集中定义的。必须添加对程序集“Data,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”的引用


我不明白为什么我的Web项目需要引用我的数据项目。。它从不使用数据。直接引导..

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

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

总结如下:

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

如果
数据项目的
输出是
dll
,则将该dll添加到
业务项目
的引用中。我的业务项目已经引用了Data.dll,而我的Web项目引用了Business.dll。您可以为每个类显示
名称空间
。另外,请澄清所有项目都是使用相同的名称空间构建的.Net Framework版本?@Hassansar我更新了说明,所有项目都以.Net 4.5.1Ok为目标,如果我不想让我的Web项目知道我的数据项目,我需要使用其他系统来同步初始化?如果Web项目依赖于数据层中的功能,它必须知道。为什么您希望您的web项目不了解数据层?替换为另一个数据层而不更改我的web项目中的任何内容。在我写这篇文章时,我意识到我对数据的依赖不是直接的,而是通过业务。。我设法找到另一种方法来调用我的初始化。在这种情况下,你应该考虑使用接口。是的,我知道,但我想避免使用这种情况下的接口:)。我只是使用另一种行为:)。谢谢你的回答!