mi situación¿Cómo disminuir los tiempos de MSBuild
En el proyecto de C# Ahora estoy trabajando en una solución que tienen bastante grande (más de 80 proyectos). Ahora los tiempos de reconstrucción de 5 minutos + se están convirtiendo en un gran problema al utilizar MSBuild desde Visual Studio 2008.
En un análisis que hizo la semana pasada resultó que mi tiempo de construcción se pasó de la siguiente manera:
Copia de archivos a los proyectos y volver a copiar a los proyectos que dependen de ella (CopyToLocal), etc. . (60%)
Invocando una postconstrucción para descompilar/compilar. (20%)
Haciendo la compilación real, etc. (20%)
Aparte de los 'normales' del proyecto bin\debug
carpetas de salida también se copia en un directorio externo para configurar el principal ' programa cargador '. La estructura principal del programa es un poco como esto:
\loader\bin\loader.exe
\loader\plugin\plugin1\plugin1.dll
\loader\plugin\plugin1\somedependency.dll
Lo que hice
En un intento de hacer que las cosas van un poco más rápido que pensé lo siguiente:
Copiar todos los archivos a uno son un directorio grande y no usan CopyTolocal. No me gusta esto porque ya no puedo usar diferentes versiones de los mismos archivos DLL y mi directorio bin se está volviendo un desastre.
Use parallelism (/m) for MSBuild. Esto ayuda muy poco en los tiempos de construcción.
Trate de reducir las dependencias entre proyectos, que siempre es una buena cosa, por supuesto.
Invertir en hardware. Encontré algunos research on solid-state drives, pero esto no parece prometedor.
Mi pregunta
También he notado que cuando hago un cambio en un proyecto que está en la raíz de mi árbol de dependencias todo consigue reconstruir. Incluso si el cambio fue solo en la parte 'privada' y la interfaz del proyecto no cambió.
¿Utiliza MSBuild una marca de tiempo de proyectos dependientes para determinar si un proyecto necesita una reconstrucción?
¿Se puede cambiar esto a una condición diferente? Por ejemplo, la suma de comprobación del archivo?
Aparte de esta sugerencia específica, agradecería todas las sugerencias para acelerar los tiempos de compilación.
Posible duplicado de [Mejora del tiempo de construcción de CI (.NET)] (http://stackoverflow.com/questions/8633313/improving-ci-build-time-net) –