我有一个 Wpf .net 4.0 C# 项目,我试图从使用 Log4Net 迁移到使用 NLog 作为 Common.Logging Façade 后面的日志库。我原以为这是一件容易的事,但你知道他们说什么,没有什么是容易的。
我使用 NuGet 来:
- 下载版本 2.0.1.2 的 NLog。
- 下载版本 2.0.0 的 Common.Logging.NLog。
- 下载版本 2.1.2 的 Common.Logging.NLog20。
- 使用 NuGet 将通用日志记录从 2.0.0 版更新到 2.1.2 版。
在 app.config 文件中,我有:
<common>
<logging>
<factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog">
<arg key="configType" value="FILE" />
<arg key="configFile" value="~/NLog.config" />
</factoryAdapter>
</logging>
</common>
... 和 ...
<dependentAssembly>
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
</dependentAssembly>
当我运行应用程序时,我收到一条错误消息
'在匹配指定绑定约束的类型'NameSpace.Shell.AppBootstrapper'上调用构造函数引发了异常。行号“8”和行位置“18”。
内部异常是:
{“无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。”}
说Loader异常,只有一个,就是:
{“无法从程序集 'NLog, Version=2.0.1.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c' 加载类型 'NLog.TargetWithLayout'。”:“NLog.TargetWithLayout”}
有没有人克服这个问题或有解决办法NLog working with Common.Logging
?
为了不张贴长时间的问题,我没有包含该NLog.config
文件,但如果它是有益的,我可以。