开发者

Using two versions of the same assembly (system.web.mvc) at the same time

I'm using a content management system whose admin interface uses MVC 1.0. I would like to build the public parts of the site using MVC 2.

If I just reference System.Web.Mvc version 2 in my project the admin mode doesn't work as the reference to System.Web.Mvc.ViewPage created by the views in the admin interface is ambiguous:

The type 'System.Web.Mvc.ViewPage' is ambiguous: it could come from assembly 'C:\Windows\assembly\GAC_MSIL\System.Web.Mvc\2.0.0.0__31bf3856ad364e35\System.Web.Mvc.dll' or from assembly 'C:\Windows\assembly\GAC_MSIL\System.Web.Mvc\1.0.0.0_开发者_C百科_31bf3856ad364e35\System.Web.Mvc.dll'. Please specify the assembly explicitly in the type name.

I could easily work around this by using binding redirects to specify that MVC 2 should always be used. Unfortunately the content management systems admin mode isn't compatible with MVC 2. I'm not exactly sure why, but I start getting a bunch of null reference exceptions in some of it's actions when I try it and the developers of the CMS have confirmed that it isn't compatible with MVC 2 (yet).

The admin interface which is accessed through domain.com/admin is not physically located in webroot/admin but in the program files folder on the server and domain.com/admin is instead routed there using a virtual path provider. Therefor, putting a separate web.config file in the admin folder to specify a different version of System.Web.Mvc for that part of the site isn't an option as that won't fly when using shared hosting.

Can anyone see any solution to this problem? Perhaps it's possible to specify that for some assemblies a different version of a referenced assembly should be used?


We ran into a similar issue. Most of our applications use MVC 3.0. We are using a content management system that uses MVC 1.0. We had a compatibility issue because we were trying to referece one of the application components in the content management system. When we put both versions of MVC into the GAC, this resolved the issue.


Why not save yourself the pain and use MVC 1 for your public site? The end user won't know any difference and there is not really anything wrong with MVC 1

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜