这是“问题”。我开发的每个库都记录了一些东西,但是我不想要求库用户知道这一点,并安装我将使用的log4net或类似的日志记录实现。聪明人如何创建独立程序集?没有日志库的日志记录
记录输出对图书馆用户来说并不重要,除非他或她真的想看到调试/信息输出。在这种情况下,他会安装log4net并告诉库以某种方式通过配置文件使用它。否则,我想运送我的图书馆没有任何不相关的依赖关系。这可能吗?有什么选择?如果有人需要一个启用了日志记录的库,他会简单地用另一个版本覆盖它。在C++中,我会简单地创建一对dll/so(带和不带日志记录)。
那么你在内部使用log4net?为什么你不允许用户指定他/她想要使用的日志记录方法? – Kyro 2011-04-06 00:25:55
是的,它确实隐含地引用它。一般来说,我使用我自己的抽象日志界面。所以也许我可以动态加载一个适当的日志库,如log4net。同样,我需要在所开发的所有库中共享ILog接口,所以我必须再次至少发布MyLibrary.dll + MyCompany.Logging.dll :( – 2011-04-06 00:28:37