C# 未使用(和引用)程序集上的程序集引用错误,为什么我会遇到此错误?
在我的解决方案中,我有三个项目(Web、业务和数据),它们都以.NET4.5.1为目标。 Web引用业务和业务引用数据 我需要在这三个项目中执行初始化方法,具体取决于应用程序的启动。所以我在所有项目中都创建了一个引导类 业务中的引导类继承自数据中的引导类,Web中的引导类继承自业务中的引导类 所以我有这个代码: 在数据项目中:C# 未使用(和引用)程序集上的程序集引用错误,为什么我会遇到此错误?,c#,.net,inheritance,.net-assembly,C#,.net,Inheritance,.net Assembly,在我的解决方案中,我有三个项目(Web、业务和数据),它们都以.NET4.5.1为目标。 Web引用业务和业务引用数据 我需要在这三个项目中执行初始化方法,具体取决于应用程序的启动。所以我在所有项目中都创建了一个引导类 业务中的引导类继承自数据中的引导类,Web中的引导类继承自业务中的引导类 所以我有这个代码: 在数据项目中: namespace Data { public class Boot { public Boot() {
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项目中的任何内容。在我写这篇文章时,我意识到我对数据的依赖不是直接的,而是通过业务。。我设法找到另一种方法来调用我的初始化。在这种情况下,你应该考虑使用接口。是的,我知道,但我想避免使用这种情况下的接口:)。我只是使用另一种行为:)。谢谢你的回答!