Common.Logging.NLog32 无法使用 NLog 3.2.1.0?仅在客户端?

Common.Logging.NLog32 unable to use NLog 3.2.1.0? On client only?

我目前正在设置客户端服务器项目。我的服务器部分是一个 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 中找到 PublicKeyToken 为 5120e14c03d0593c 的 NLog 程序集。

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

知道行为不同的原因以及如何在不手动加载确切的 NLog 版本的情况下解决这个问题吗?

好奇怪...

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

之后,我重新构建了代码,并想在 post 的 github 页面上将问题重现。它成功了,再也没有问题了。

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