我们有使用MVC3的Web应用程序,它们都与HtmlHelper Extensions共享一个库。
有没有办法让这个必须引用MVC程序集的共享库也可以与MVC4应用程序一起使用,而无需转换现有的并且不复制共享库?
我尝试将共享库上的MVC引用设置为SpecificVersion = false,但随后它切换到MVC4并且MVC3项目不能再使用它了。
每当我尝试并排使用MVC3和MVC4程序集时,我会得到一个未处理的win32异常。
任何想法如何解决这个问题,或者是唯一的方式去完整的MVC4还是留在MVC3?感谢
答案 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)。