There is another approach to deal with issue 1:
- Add the necessary projects from Main.sln to the
Extension.sln
. Υou can do this by selecting "Add Existing Project" from the solution's context menu. - Update the references of the extension projects to the added projects and not to their output dlls. Visual Studio will be responsible for locating the output dlls and for deciding when your projects need to be built.
- You can even add a
solution folder
named "Dependencies" or something like that and move there all the projects fromMain.sln
. This way you can tell which are the projects that are "guests".
This will solve all of the bullets of issue 1, but you will need to be careful because from the Extension.sln
you can modify the dependent projects. A plus is that you will also be able to debug your code in a more straighforwad way that will work in a new development machine without any extra work.
That said, I would go for a single solution with all 8 projects which is straight-forward. Only if the solution was getting huge (~100 projects) I would go for this.
Regarding you comment about different repositories:
Also if I commit this to SVN will the "existing projects" also be commited to the new repository?
I don't think so. If you keep them in the same SVN repository (which I can't see any reason not to), it will be Ok. You can add a lot of solutions to the same repository. As long as they are relevant it is the right thing to do.
Another valuable test is to take a fresh copy from the repository and try to build it. This can be done daily on a build server and will help you locate problems early on. The less steps it takes to do so the better.