0

我目前正在建立一个客户端服务器项目。我的服务器部分是一个 C# WebAPI 项目(net45)。我的客户端部分是一个 C# WPF 项目(net45)。

对于日志记录,我想将 Common.Logging 与 Common.Logging.NLog32 适配器一起使用。

起初我在服务器部分配置它,它就像一个魅力。我继续为 WPF 应用程序配置它,但在调用时它一直失败:

LogManager.GetCurrentClassLogger();

或者

LogManager.GetLogger("MyLogger");

异常告诉我它无法创建Common.Logging.NLog.NLogLoggerFactoryAdapter. 内部异常表明它在 3.2.0.0 版本中找不到带有 5120e14c03d0593c 的 PublicKeyToken 的 NLog 程序集。

在这两种情况下,服务器和客户端,我都安装了相同的 nuget 包。虽然服务器部分使用 NLog 3.2.1.0 程序集(与 Common.Logging.NLog32 一起出现)没有问题,但客户端仍然无法加载它。

任何想法为什么行为不同以及如何在不手动加载确切的 NLog 版本的情况下解决这个问题?

4

1 回答 1

0

嗯,这很奇怪……

一位同事让我尝试在没有 Common.Logging 包装器的情况下直接使用 NLog。我做到了,一切都按预期工作。

之后,我重新构建了代码并希望重现该问题以将其发布在它的 github 页面上。它起作用了,不再有问题了。

我不知道究竟是什么解决了这个问题,但对于遇到相同问题的每个人:尝试直接使用 NLog 一次,然后再尝试使用 Common.Logging。

于 2015-05-08T06:40:23.843 回答