Tengo una solución de Visual Studio 2008 con> 40 proyectos C# y C++/CLI que dependen uno del otro. Trabajar con esa solución es bastante lento, y generalmente solo necesito algunos proyectos a la vez. Así que decidí dividir la solución en múltiples soluciones que contienen 3-5 proyectos. También me gustaría mantener la solución "completa" en todos los proyectos (es útil para construcciones automatizadas o grandes acciones de refactorización que afectan a todos los proyectos). (Esta es la condición principal aquí. De lo contrario, dividir proyectos en soluciones es trivial, por supuesto.)¿Cómo se divide una solución de Visual Studio?
¿Hay alguna manera de hacerlo?
Mi primera idea fue crear nuevas soluciones vacías y agregar algunos de los archivos de proyecto existentes en cada una de estas soluciones. Pero si lo hago, VS ya no puede encontrar las referencias del proyecto (porque no están en la misma solución). Puedo agregar las referencias como referencias de archivos "normales". Pero si hago eso, mi solución "completa" ya no funciona, porque las dependencias están perdidas.
EDIT:
Gracias a todos por sus respuestas. Me gustaría aclarar mi pregunta un poco: mi solución contiene 44 proyectos, sin incluir los exámenes. Así que dividirlo en 2 partes no es realmente lo que tenía en mente, pensaba más en 5-8 partes. Es por eso que me gustaría mantener la solución "completa" donde VS pueda descubrir el orden de construcción correcto para una compilación completa. Mantener el orden de compilación para 8 soluciones separadas a mano (por ejemplo, en un archivo por lotes) parece propenso a errores.
También me gustaría agrupar los proyectos "lógicamente" (es decir, me gustaría tener los proyectos que generalmente se modifican juntos en una sola solución). Pero esa agrupación no siempre coincide con las dependencias. Por ejemplo, imaginar que tengo la cadena de dependencias
A is referenced by B is referenced by C is referenced by D
e imaginar que A y D se modifican a menudo juntos, pero B y C rara vez cambian. (Obviamente, la interfaz de A que B utiliza debe permanecer inalterada para eso.) Entonces me gustaría tener A y D en una solución, B y C en otra. Pero eso solo funcionaría si pudiera tener una solución "completa" intacta que contenga A, B, C y D si quiero construir todos los proyectos desde cero. Una vez que la compilación esté completa, podría abrir mi solución A/D y editar/compilar solo esos 2 proyectos.
Pero me temo que no hay una solución elegante para mi problema. (juego de palabras no intencionado)
suspiro. No es la respuesta que esperaba, pero aparentemente cierto. Gracias. – Niki
La respuesta de Jason Williams debe marcarse como la correcta. No debe dividir o combinar proyectos por el bien del proceso de compilación ... – MrLane
+1 De acuerdo con MrLane – mCasamento