I have a MVC 3.0 and MVC 4.0 Projects side by side
I did this for the resource sharing between two solutions. it is works fine when i change the config file. changes in details.
In MVC 3.
<assemblies>
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages"/>
</namespaces>
</pages>
When i remove the <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
MVC 4 is working fine. after i debug the project in MVC 3.0 it showing an error msg(The type or namespace name 'Ajax' does not exist in the namespace 'System.Web.Mvc' (are you missing an assembly reference?)
) because of i remove the "System.Web.Mvc, Version=3.0.0.0" , if i have to run that means i have to place the refreance again. here i am doing everyting manually, is there is any way to automatic do this ?
For example, two xml files in server side i read that xml file and replace the config file.
Already Tried.
In MVC 4 project i used the WebConfigurationManager
to remove the refreance it works , after i opened the MVC 3 it shows that error msg.
You could create a new build configuration for Mvc3 and run a pre-build event that will overwrite your web.config, it's an idea I've adopted from Hanselman.
If you follow the link the only difference for your set up would be that you would have a config called
Web.Config.Mvc3 (and possibly Web.Config.Mvc3Release)
and leave Mvc as your default builds
Web.Config.Debug
Web.Config.Release