2010-07-30 15 views
8

Tengo una solución Silverlight 4 que toma mucho tiempo construir desde VS2010 y la línea de comandos de MSBuild 4.¿Por qué tarda mucho tiempo la tarea MSBuild ResolveProjectReferences?

La solución contiene 42 proyectos, uno es un proyecto de aplicación Silverlight, un proyecto de aplicación web y el resto son bibliotecas de clase.

El resumen diag MSBuild muestra estas tareas están tomando un tiempo considerable ...

29891 ms ResolveAssemblyReferences     68 calls 
115609 ms CopySilverlightApplications    1 calls 
131547 ms ValidateXaml        36 calls 
425688 ms ResolveProjectReferences     68 calls 
634031 ms Build          71 calls 

Las dependencias del proyecto están muy bien organizado, y el orden de generación parece razonable. Tengo todos los proyectos compilados en una sola carpeta de salida, y todos los que se mencionan tienen CopyLocal = false.

Parece que el peor infractor es el ResolveProjectReferences, pero ¿por qué tarda tanto?

Respuesta

2

¿Tiene habilitado el análisis de código en la compilación? Si es así intenta deshabilitarlo. Tenía un problema similar. Después de deshabilitar el análisis del código, la compilación se ejecuta ~ 5 veces más rápido.

0

ResolveProjectReferences tiene que construir todos los proyectos a los que se hace referencia. Por lo tanto, es posible que algunos proyectos se creen varias veces.

Utilice las referencias de archivos y un proceso de compilación centralizado para eliminar este problema.

i used this in a project once

hemos reducido nuestra Buildtime de 12 minutos a 3 minutos.

Cuestiones relacionadas