【问题标题】:Assembly Manifest mismatch with binding redirects in place for .NET Web API 2Assembly Manifest 与 .NET Web API 2 的绑定重定向不匹配
【发布时间】:2013-11-13 16:59:12
【问题描述】:

我已升级从 Visual Studio 2012 开始的 MVC 4 和 Web API 项目以使用 Web API 2(NuGet 包 5.0+)。

我已添加程序集清单以重定向到较新的库,如下所示:

<dependentAssembly>
  <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
  <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>

这些包被设置为在构建时复制到本地 bin 目录,并且我已经验证了在本地计算机和我们用于测试的远程 Web 服务器上的 bin/ 文件夹中是否存在正确的程序集。远程计算机上的 GAC 中不存在 Web API 库的副本。

然而,System.Net.Http.Formatting 仍然声称在向应用程序发出请求时它没有找到正确的版本。

Could not load file or assembly System.Net.Http.Formatting, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.

谁能解释为什么由于清单不匹配而仍然存在程序集绑定问题?

【问题讨论】:

    标签: .net visual-studio-2012 asp.net-web-api asp.net-web-api2


    【解决方案1】:

    解决了。

    显然,AutoFac 试图使用旧版本的 System.Web.Http (4.0.0.0)。幸运的是,AutoFac 的创建者最近发布了一个更新的 Web API 2 集成包:

    http://www.nuget.org/packages/Autofac.WebApi2/

    升级到 AutoFac.WebApi2 并删除 System.Net.Http.Formatting 的绑定重定向(来自原始问题)后,一切正常!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多