【问题标题】:Common.Logging.NLog32 unable to use NLog 3.2.1.0? On client only?Common.Logging.NLog32 无法使用 NLog 3.2.1.0?只在客户端?
【发布时间】:2015-05-07 06:35:21
【问题描述】:

我目前正在设置一个客户端服务器项目。我的服务器部分是一个 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 版本的情况下解决此问题?

【问题讨论】:

    标签: c# wpf client nlog common.logging


    【解决方案1】:

    这很奇怪……

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

    之后,我重新构建了代码并希望重现该问题以将其发布到它的 github 页面上。成功了,没有问题了。

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

    【讨论】:

      猜你喜欢
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      相关资源
      最近更新 更多