12

我刚刚通过 nuGet 在一个新项目上安装了 AutoMapper,但是当我运行代码时,出现以下错误:

无法加载文件或程序集“AutoMapper,Version=2.2.1.0,Culture=neutral,PublicKeyToken=be96cd2c38ef1005”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

为什么它在寻找 Version=2.2.1.0,我该怎么办?恢复到那个版本?

4

4 回答 4

12

您可能只想为 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>
于 2013-09-02T13:42:01.250 回答
4

再次尝试卸载并重新安装 AutoMapper。

如果您的解决方案中有多个项目,那么您的一个项目中可能已经安装了 2.2.1.0 版本。但是 AutoMapper 的最新版本是 3.0.0,所以这就是你遇到问题的原因。

于 2013-09-02T11:16:24.807 回答
1

问题:

无法加载文件或程序集“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>

清洁,重建解决方案和微笑!:-)

于 2015-01-26T13:20:38.410 回答
0

我遇到了同样的错误,并且能够通过在应用程序池上将启用 32 位应用程序设置为 True 来修复

于 2014-02-18T01:52:40.107 回答