Nlog给出exception可能的解释是缺少零arg和单个arg Common.Logging.Configuration.NameValueCollection构造函数

我将nlog添加到我的应用程序和测试项目中。 它们都是同一解决方案的一部分。 从内部应用程序nlog工作。 但是从测试项目得到以下exception:

Unable to create instance of type Common.Logging.NLog.NLogLoggerFactoryAdapter. Possible explanation is lack of zero arg and single arg Common.Logging.Configuration.NameValueCollection constructors 

我的Nlog配置如下:

                                  

packages.congfig文件

        

当我仔细看看有一个内部exception,抱怨找不到nlog 2.0.0 dll。 找到如下解决方案

  1. 删除与nlog和commons logging restart应用程序相关的所有软件包。 如果没有被nuget编辑.csproj文件和.packages文件删除包,则删除对Commons日志记录或nlog包的所有引用。
  2. 然后在搜索文本框中输入Common.Logging.Nlog ,搜索最新的nlog包。 然后选择最新的nlog包,它将安装所有其他所需的包,以便使用nlog通过commons logging作为依赖项。 如下所示: 在此处输入图像描述
  3. 在你的web.config更新你的工厂适配器元素在我的情况下我选择了31,所以更新它

在此处输入图像描述

PS如果收到错误The configuration section cannot contain a CDATA or text element. 然后问题必须是配置文件中的类型。

将Common.Logging和NLog配置从一个网站移动到另一个网站后,我遇到了这个错误。 我错过了web.config的程序集绑定部分中的’dependentAssembly’块:

  ...              

添加,以防这个问题帮助其他人与我相同的问题!

Interesting Posts