重用MVC3和MVC4解决方案的共享项目

时间:2013-03-25 12:50:10

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我们有使用MVC3的Web应用程序,它们都与HtmlHelper Extensions共享一个库。

有没有办法让这个必须引用MVC程序集的共享库也可以与MVC4应用程序一起使用,而无需转换现有的并且不复制共享库?

我尝试将共享库上的MVC引用设置为SpecificVersion = false,但随后它切换到MVC4并且MVC3项目不能再使用它了。

每当我尝试并排使用MVC3和MVC4程序集时,我会得到一个未处理的win32异常。

任何想法如何解决这个问题,或者是唯一的方式去完整的MVC4还是留在MVC3?感谢

1 个答案:

答案 0 :(得分:1)

您可以在ASP.NET MVC 4应用程序的web.config中使用绑定重定向:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
</runtime>

现在,您可以在ASP.NET MVC 4应用程序中引用包含自定义帮助程序的程序集(而这又取决于ASP.NET MVC 3)。