为什么获胜';t AutoMapper v3之所以有效,是因为它';s正在寻找v2.2.1.0版本

本文关键字:寻找 0版本 v2 AutoMapper 获胜 v3 之所以 为什么 有效 是因为 | 更新日期: 2023-09-27 18:29:49

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

无法加载文件或程序集的AutoMapper,版本=2.2.1.0,Culture=neutral,PublicKeyToken=be96cd2c38ef1005'或其一个依赖关系。找到的程序集的清单定义不匹配程序集引用。(HRESULT异常:0x80131040)

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

为什么获胜';t AutoMapper v3之所以有效,是因为它';s正在寻找v2.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,我得以修复