2015-08-25 186 views
0

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

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

但是,我不禁觉得这是不应该做的事情? 还是有解决方案,而不是必须添加依赖项到任何项目使用我的DLL?

+1

我认为在DLL引用上将Copy Local设置为True会导致它被输出到任何引用该特定项目的项目,从而避免添加对每个单独项目的引用。 –

回答

0

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

详细说明,假设在一个项目P中,你有组件A1,A2。并且这个程序集A1 inturn使用程序集A2和A1在P中被引用并在代码的某些部分中使用。现在,如果我们看到,我们同时将A1和A2作为P的一部分。但是当我们将项目P的引用包含到其他项目Q中时,那么我们在Q中没有A2可用,因为P没有使用任何明确的代码A2内。

这就是为什么您需要明确包含引用,即使它是被引用的普通成员的一部分。

希望这会有所帮助。