我刚刚通过 nuGet 在一个新项目上安装了 AutoMapper,但是当我运行代码时,出现以下错误:
无法加载文件或程序集“AutoMapper,Version=2.2.1.0,Culture=neutral,PublicKeyToken=be96cd2c38ef1005”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)
为什么它在寻找 Version=2.2.1.0,我该怎么办?恢复到那个版本?
我刚刚通过 nuGet 在一个新项目上安装了 AutoMapper,但是当我运行代码时,出现以下错误:
无法加载文件或程序集“AutoMapper,Version=2.2.1.0,Culture=neutral,PublicKeyToken=be96cd2c38ef1005”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)
为什么它在寻找 Version=2.2.1.0,我该怎么办?恢复到那个版本?
您可能只想为 AutoMapper 添加绑定重定向,因为您的参考之一正在寻找 2.2 版
这应该这样做:
<dependentAssembly>
<assemblyIdentity name="AutoMapper" publicKeyToken="be96cd2c38ef1005"
culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
再次尝试卸载并重新安装 AutoMapper。
如果您的解决方案中有多个项目,那么您的一个项目中可能已经安装了 2.2.1.0 版本。但是 AutoMapper 的最新版本是 3.0.0,所以这就是你遇到问题的原因。
问题:
无法加载文件或程序集“AutoMapper,Version=3.2.1.0,Culture=neutral,PublicKeyToken=be96cd2c38ef1005”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)
解决方案:
将 assemblyBinding 添加到您的 app.config 文件中:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="AutoMapper" publicKeyToken="be96cd2c38ef1005" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.2.1.0" newVersion="3.3.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
清洁,重建解决方案和微笑!:-)
我遇到了同样的错误,并且能够通过在应用程序池上将启用 32 位应用程序设置为 True 来修复