本身具有多个DLL的项目参考

时间:2019-05-31 04:55:06

标签: c# .net visual-studio nlog class-library

我有一个查询...

我有一个具有异常日志记录机制的类库项目。对于在数据库和文件中记录异常,我正在使用NLog。

我想以这种方式实现此Exception Class库项目,以便将来可以将其DLL文件用于任何项目。

问题是当我将此DLL引用到其他项目时,它也在寻找NLOG dll。因此会出现

之类的错误

[无法加载文件或程序集'NLog,版本= 4.0.0.0,区域性=中性,PublicKeyToken = 5120e14c03d0593c'或其依赖项之一。系统找不到指定的文件。']

但是,当我将dll添加到当前调用的项目中时,一切便开始工作,这意味着它显然也在寻找NLOG DLL。

但是如果我要添加两个DLL(Nlog,ClassLibrary DLL到调用项目),那将是完全可悲的。

请对此发表您的看法。

请找到我的解决方案的附件屏幕截图。

enter image description here

例外是这样的:

enter image description here

1 个答案:

答案 0 :(得分:1)

当该项目仅编写日志消息时,仅对于类库,您需要引用NLog。

我举了一个例子来说明它的工作原理:

https://github.com/304NotModified/NLog-Demo-cases/tree/master/ConsoleWithClassLib

编辑:

添加了第二个演示,在这种情况下,NLog由类库配置。在这种情况下,重要的是在登录之前配置NLog;)

库中的相关部分:

// setup config
var configuration = new LoggingConfiguration();
configuration.AddRuleForAllLevels(new ConsoleTarget());
LogManager.Configuration = configuration;

// log
Logger logger = LogManager.GetCurrentClassLogger();
logger.Info("Init class1");

完整演示:https://github.com/304NotModified/NLog-Demo-cases/tree/master/ConsoleWithClassLib2