【问题标题】:"Could not load System.XML Version 2.0.5.0" exception with NLogNLog 出现“无法加载 System.XML 版本 2.0.5.0”异常
【发布时间】:2019-04-09 23:43:14
【问题描述】:

我收到一个异常 "Could not load file or assembly 'System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The system cannot find the file specified." 堆栈跟踪 "at NLog.Config.XmlLoggingConfiguration..ctor(String fileName, Boolean ignoreErrors, LogFactory logFactory) at NLog.LogFactory.LoadLoggingConfiguration(String configFile)"

我不确定的是,我在项目中有对 System.XML 的引用,但没有找到?我已经删除/重新添加了参考并阅读了与此类似的其他问题,但似乎无法解决这个问题。 NLog 是否需要找到此参考,或者我可以检查以查看可能缺少的依赖项列表?

我正在使用:
System.XML 4.0.0.0
NLog 4.0.0.0
.NET 4.6.1

【问题讨论】:

  • 你用的是哪个版本的nlog?
  • 4.0.0.0,我会把所有的版本都放在帖子里。

标签: c# .net compiler-errors nlog


【解决方案1】:

出于某种原因,删除所有 NLog 引用并从 NuGet 中读取它是有效的,即使我昨天尝试过......无论哪种方式,我似乎已经超越了这一点。

【讨论】:

  • 这取决于VS版本、NuGet客户端版本和你添加的包版本,因为“2.0.5.0”表示使用了PCL版本,不再推荐。 NuGet 应解析为 .NET Framework 版本或 .NET Standard 版本。
【解决方案2】:

我通过卸载在我的解决方案中引用 NLog 的库项目解决了这个问题。我编辑了 csproj 文件并搜索了对 NLog 的引用。我在那里找到了所有这些:

<Content Include="packages\NLog.4.7.8\lib\monoandroid44\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\monoandroid44\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\net35\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\net35\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\net40-client\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\net40-client\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\net45\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\net45\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\netstandard1.3\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\netstandard1.3\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\netstandard1.5\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\netstandard1.5\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\netstandard2.0\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\netstandard2.0\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\sl4\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\sl4\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\sl5\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\sl5\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\wp8\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\wp8\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\xamarinios10\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\xamarinios10\NLog.xml" />

我看到其他开发人员的一些帖子有类似的问题,但许多人在他们的解决方案中使用 Xamarin 项目。这让我觉得问题可能出在 xamarin 和 android 程序集的内容上。我删除了除 .net 框架之外的所有内容,最后得到了这个列表:

<Content Include="packages\NLog.4.7.8\lib\net35\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\net35\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\net40-client\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\net40-client\NLog.xml" />
<Content Include="packages\NLog.4.7.8\lib\net45\NLog.dll" />
<Content Include="packages\NLog.4.7.8\lib\net45\NLog.xml" />

然后我重新加载项目,清理解决方案并重建它。

问题解决了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多