我刚刚通过nuGet在一个新项目上安装了AutoMapper,但当我运行代码时,我得到了以下错误:
无法加载文件或程序集的AutoMapper,版本=2.2.1.0,Culture=neutral,PublicKeyToken=be96cd2c38ef1005'或其一个依赖关系。找到的程序集的清单定义不匹配程序集引用。(HRESULT异常:0x80131040)
为什么它在寻找版本=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添加到yur 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>
清洁、重建解决方案并微笑!:-)
我也有同样的错误,通过在应用程序池上将Enable 32 Bit applications设置为True,我得以修复