2010-06-07 12 views
6

Tengo un gran archivo .sln con muchos proyectos.Visual Studio sigue construyendo todo

Acabo de hacer un cambio en el proyecto A y construye otros nueve proyectos que proyectan referencias A, pero que no tuvieron cambio de código.

¿Hay algún truco para acelerar este proceso?

+0

La forma en que lo dice claramente parece ser un error. Si _A_ cambia, los proyectos _A_ dependen de no deberían reconstruirse, solo los proyectos que dependen de _A_. En versiones anteriores de VS, he visto que esto sucedía cuando los pasos de construcción personalizada estaban involucrados. – sbi

Respuesta

2

Dividir y conquistar: limite la cantidad de tiempo de compilación que transcurre en la solución creando soluciones adicionales que contengan subconjuntos lógicos de los proyectos en los que está trabajando. Esto limita su alcance y acelerará las compilaciones.

Véase el La única solución con particiones Modelo en este artículo de MSDN: http://msdn.microsoft.com/en-us/library/ee817674.aspx

cita clave del artículo:

Separate solution files allow you to work on smaller subsystems within your overall system 
but retain the key benefits of project references. Within each subsolution file, 
project references are used between constituent projects. 
+0

Entonces, ¿este método le haría crear una solución con un proyecto (Proyecto A en este ejemplo) que simplemente hace referencia a las DLL de todos los otros proyectos en lugar de todos los otros proyectos? Entonces cuando construyes solo recompilas un proyecto. – wcm

+0

No necesariamente solo un proyecto, pero posiblemente. –

1

Seleccionando 'solo construcción' al hacer clic derecho en el proyecto A debería ser el truco. No estoy seguro si hay una manera de evitar que construya proyectos referenciados también al construir la solución (que es lo que hace el comando estándar 'compilar').

0

Asegúrese de que las dependencias de su proyecto sean correctas. Haga clic derecho en el proyecto y vaya a "Dependencias del proyecto". Asegúrese de que cada proyecto solo dependa del conjunto mínimo de otros proyectos que se necesitan para vincular.

0

Otra cosa a buscar, ya que acaba de pasar a mí, es que si sincroniza su vista usando ClearCase mientras su solución está abierta y parte de su código se actualizó mediante sincronización, a veces establece las marcas de tiempo incorrectamente en los archivos, por lo que sigue pensando que sus archivos fuente han sido modificados y compilando su proyecto cada vez .

Para solucionar esto tuve que cerrar la solución y volver a abrirla, y se comportó como se esperaba.

2

Esto ocurre cuando un proyecto tiene un archivo que realmente no existe.
El proyecto no puede determinar si el archivo fue cambiado (porque no está allí) por lo que se reconstruye.

Simplemente mire todos los archivos del proyecto y busque el que no tenga una flecha expansible cerca.

+0

flecha expansible? ¿No es solo para las clases de GUI (por ejemplo, Windows Forms) y cosas similares? En uno de mis proyectos/soluciones, tengo muchos archivos .cs (que todos existen) que tienen clases simples independientes en ellos, y no tienen una flecha. –

0

Cambie el nivel de detalle de la salida de compilación y vea lo que dice en la parte superior. En mi caso, me dijo que el proyecto no estaba actualizado debido a un archivo que faltaba.

+0

¿Cómo se cambia la verbosidad de salida de compilación a detallada? –

+0

Una forma puede ser [configurar menú * Herramientas * → * Opciones * → * Proyectos y soluciones * → * Construir y ejecutar * → * MSBuild proyecto construir verbosidad * a *** "Diagnóstico" ***] (https: //desbordamiento de pila.com/questions/1211841/how-can-i-make-visual-studios-build-be-very-verbose/1211886 # 1211886). –

Cuestiones relacionadas