共享的DLL -依赖关系

本文关键字:依赖 关系 DLL 共享 | 更新日期: 2023-09-27 18:09:54

我有一个在几个项目之间共享的DLL。其中包含一些常见的自定义控件等。现在在dll项目中,我使用log4net来记录这些控件抛出的任何问题。

这意味着我需要包括log4net在我所有的其他项目或我得到一个无法解决依赖错误。添加log4net不是一个大问题,我在其他项目中使用它。

然而,我忍不住觉得这是不应该做的事情。或者有一个解决方案,而不是必须添加依赖到任何项目使用我的DLL?

共享的DLL -依赖关系

包含依赖关系的基本思想如下——任何项目只包含那些在某些代码中显式使用的依赖关系。

为了详细说明,假设在项目p中,您有程序集A1, A2。汇编A1返回使用汇编A2 A1在P中被引用并在代码的某些部分被使用。现在,如果我们看到,我们将A1和A2都作为P的一部分,但是当我们将对项目P的引用包含到其他项目Q中时,那么我们在Q中就没有可用的A2,因为P中没有任何使用A2的显式代码。

这就是为什么需要显式地包含引用,即使它是被引用的公共成员的一部分。