asp.net - 防止运行时程序集绑定(bind)到旧程序集

标签 asp.net asp.net-mvc assemblybinding

我有一个包含 3 个项目的解决方案:

Solution.Web.Core - Common classes
Solution.Web.Mvc - MVC 4
Solution.Web.Api - Web Api 2 aka running ASP.NET 5.0 (beta-1) assemblies

我已将 WebApi 设置为 MVC 应用程序的子应用程序(在 IIS 中),但是,我无法实现该项目的完全隔离。

因为 Solution.Web.Core 有一些对 ASP.NET 4.0 程序集的引用,如果我在 Solution.Web.Api 中添加对此项目的引用,我会得到运行时出现以下异常:

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. (Exception from HRESULT: 0x80131040)

如何防止 Solution.Web.Api 中发生此错误,以便我可以引用 Solution.Web.Core,尽管引用ASP.NET 的旧程序集版本?

注意:由于错误显示“System.Net.Http.Formatting 或其依赖项之一”,老实说,我什至不确定如何找出哪个是确切的违规程序集。

最佳答案

更改 View 部分的 Web.Config

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, **Version=5.0.0.0**, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, **Version=5.2.3.0**, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>

关于asp.net - 防止运行时程序集绑定(bind)到旧程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17632551/

相关文章:

asp.net - 在同一域的两个网站之间共享 cookie

c# - 当新版本不存在时使用 <bindingRedirect> 到新版本的程序集

c# - 强制第 3 方程序集使用另一个程序集的另一个版本

c# - ASP.NET 在更新面板更新时显示 "Loading..."消息

asp.net - 我可以用什么最好的隐形角色来替换?

asp.net - 我如何绕过特定 url 的 "angular-in-memory-web-api"

c# - 教程如何在Asp.Net MVC应用程序中使用EmguCV

c# - 在 MVC View 中获取模型类型

c# - 加快 linq/实体结果的返回速度

c# - ConfigurationManager.OpenMappedExeConfiguration.GetSection() 失败(最近才开始发生)