【发布时间】:2020-02-12 17:53:50
【问题描述】:
我最近安装了 CsvHelper (https://joshclose.github.io/CsvHelper/),当我尝试使用该库时出现以下错误:
无法加载文件或程序集“System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)
在我的 app.config 中,我有绑定重定向:
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
在我的项目中我也参考了
\packages\System.Threading.Tasks.Extensions.4.5.3\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll
它的版本是 4.2.0.1 我不知道为什么它还在尝试加载 4.2.0.0 的库。
我的项目正在运行 .net 4.7.2
【问题讨论】:
-
这是单项目解决方案,还是多项目解决方案?我在 Framework(不是 Core)中注意到,如果在解决方案中的任何地方使用它们,有时我需要将所有包及其依赖项安装到入口点项目中,否则我会遇到运行时错误。
-
我有 2 个项目,一个控制台应用程序,另一个是带有 nunit 的测试项目。测试引用控制台一个都是 .net 4.7.2 都引用 System.Threading.Tasks.Extensions
-
刚刚创建了新的控制台应用程序 .net core 2.2 并且工作正常。
-
我需要升级一个不同的 nuget 依赖项,该依赖项需要比我的项目安装的版本更早的版本。
标签: c# csvhelper assembly-binding-redirect assemblybinding