Tengo un gran archivo de solución de C # (~ 100 proyectos), y estoy tratando de mejorar los tiempos de compilación. Creo que "Copiar local" es un desperdicio en muchos casos para nosotros, pero me pregunto sobre las mejores prácticas.
En nuestro .sln, tenemos la aplicación A que depende del conjunto B, que depende del conjunto C. En nuestro caso, hay docenas de "B" y un puñado de "C". Como todos están incluidos en el archivo .sln, estamos utilizando referencias de proyectos. Todos los ensamblados actualmente se integran en $ (SolutionDir) / Debug (o Release).
De forma predeterminada, Visual Studio marca estas referencias de proyecto como "Copiar local", lo que hace que cada "C" se copie en $ (SolutionDir) / Debug una vez por cada "B" que se genera. Esto parece un desperdicio. ¿Qué puede salir mal si solo apago "Copiar local"? ¿Qué hacen otras personas con sistemas grandes?
SEGUIMIENTO:
Muchas respuestas sugieren dividir la compilación en archivos .sln más pequeños ... En el ejemplo anterior, construiría primero las clases básicas "C", seguidas por la mayor parte de los módulos "B", y luego algunas aplicaciones ". UNA". En este modelo, necesito tener referencias no relacionadas con el proyecto a C desde B. El problema con el que me encuentro allí es que "Debug" o "Release" se intercalan en el camino de la pista y termino construyendo mis versiones de lanzamiento de "B" contra las versiones de depuración de "C".
Para aquellos de ustedes que dividen la compilación en múltiples archivos .sln, ¿cómo manejan este problema?
<Private>True</Private>
en un csproj?
.sln
en pequeños rompe el cálculo de interdependencia automática de VS de <ProjectReference/>
s. Yo mismo me mudé de varios pequeños .sln
más a uno solo .sln
solo porque VS causa menos problemas de esa manera ... Entonces, ¿tal vez el seguimiento está asumiendo una solución no necesariamente mejor para la pregunta original? ;-)