Visual Studio 2010: Importar csproj en otro csproj "inyectado" a través de svn-externals

Estoy buscando una forma de 'importar' un file .csproj en otro file .csproj.

Por ejemplo, el siguiente escenario:

Main.csproj:

<Compile Include="Class1.cs" /> <Compile Include="Class2.cs" /> 

SubMain.csproj

 <Compile Include="Class1.cs" /> <Compile Include="Class2.cs" /> <Compile Include="Class3.cs" /> 

Ahora sería bueno henetworkingar de alguna manera de 'Main.csproj' en mi 'SubMain.csproj'.

Tal vez algo así en 'SubMain.csproj':

 <Include File="Main.csproj" /> <Compile Include="Class3.cs" /> 

Entonces, ¿agregará automáticamente los files que están en 'Main.csproj'?

¿Es posible algo así con Visual Studio 2010 para ASP.Net Web Projects?

Y si no, ¿hay alguna solución alternativa para el escenario dado?

Gracias.

EDITAR ¿Por qué necesito eso?

En mi caso, ambos proyectos son ASP.Net Web Projects (WebForms). El 'Main.csproj' es la aplicación básica. El 'SubMain.csproj' es una versión específica del cliente de la Aplicación web. (Tiene la misma funcionalidad que la Aplicación básica + algunas características adicionales o algunos otros comportamientos para funciones específicas)

Actualmente hago esto simplemente copie Main.csproj y agregue mis files adicionales a él. Pero este método no es muy agradable y también causa problemas cuando los files se agregan al Main.csproj y no están automáticamente en mi 'SubMain.csproj'.

El mejor enfoque de Likley es hacer de "Main.csproj" una "biblioteca de classs" (ensamblaje) y agregarlo como reference a otros proyectos.

Para lograr exactamente lo que solicita, utilice el elemento Importar para agregar files compartidos.

Al usar el elemento Importar, puede reutilizar código que es común a muchos files de proyecto. Esto hace que sea más fácil mantener el código porque las actualizaciones que realizas al código compartido se propagan a todos los proyectos que lo importan.

Por convención, los files de proyecto importados compartidos se guardan como files .targets, pero son files de proyecto estándar de MSBuild. MSBuild no le impide importar un proyecto que tiene una extensión de nombre de file diferente, pero le recomendamos que use la extensión .targets para mantener la coinheritance.

 <Import Project="myShanetworkingFiles.targets"/> 

Tenga en count que Import tendrá copys de las classs integradas en cada ensamblado; si necesita compartir classs entre ensamblajes, el enfoque de la biblioteca de classs es el que debe usar.