We currently have 2 MVC web applications running completely independently of each other. The aim is to tie these 2 sites together in some sort of Intranet with shared authorisation etc. and some sort of home page linking to each.
So far we have created a 3rd MVC application and added both of the existing sites as MVC areas to this, which works nicely. We've also managed to separate each area into their own Visual Studio projects under a single solution.
Each of the 2 areas are specced by completely different departments of the business and (usually) developed by different developers and will need to follow independent release cycles.
The current approach is to have each area in separate repository paths and have the build server checkout the appropriate branch for each area, build the main web application (Intranet home page thing) which will in turn build the referenced area projects. The problem with this is we have to always deploy all 3 projects each time, even if just one area wants a release.
This isn't a massive deal (assuming we don't accidentally deploy a new, untested release of the main intranet web app along with the area) but it also means that the build server will stamp all assemblies of a particular build with the same version number.
A second approach was for the main intranet project to reference only the assemblies of the area projects and not the projects themselves, so it could be built on its own without having to build each area again or vise versa. 2 problems with this, I can't see a way with MS WebDeploy (used by the buildserver to publish our code) to publish just certain assemblies. Secondly, MVC areas in separate assemblies seemingly need to be added as project references and not just assembly references as views don't dynamically compile properly (missing ~/Views/web.config?)
Are there any better approaches to this?
EDIT: I've managed to get the main web application to run with regular assembly references to the areas and not project references (not entirely sure how, it just works). This means I can now build the areas independently of the main app as required.
The next problem is a deploying the whole lot with MSDeploy. The area assembly is deployed with the main app in the /bin directory but the area's views/scripts/content are not included. I'm looking at various techniques for compiling views into the assemblies themselves but can't seem to get this working yet.