2010-07-30 17 views
8

Possiedo una soluzione Silverlight 4 che richiede molto tempo per la creazione sia dalla riga di comando di VS2010 che di MSBuild 4.Perché l'attività MSBuild ResolveProjectReferences richiede molto tempo?

La soluzione contiene 42 progetti, uno è un progetto di applicazione Silverlight, un progetto di applicazione Web e il resto sono librerie di classi.

Il riepilogo diag MSBuild mostra queste attività stanno prendendo molto tempo ...

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 

Le dipendenze di progetto sono molto ben organizzato, e l'ordine di generazione sembra ragionevole. Ho tutti i progetti che compileranno in una singola cartella di output e tutti i riferimenti hanno CopyLocal = false.

Sembra che il peggiore trasgressore sia ResolveProjectReferences, ma perché dovrebbe richiedere così tanto tempo?

risposta

2

Avete l'analisi del codice abilitata per la compilazione? Se è così prova a disabilitarlo. Aveva un problema simile. Dopo aver disabilitato l'analisi del codice, la build viene eseguita ~ 5 volte più velocemente.

0

ResolveProjectReferences deve compilare ogni progetto di riferimento. Quindi è possibile che alcuni progetti vengano creati più volte.

Utilizzare i riferimenti file e un processo di generazione centrale per eliminare questo problema.

i used this in a project once

abbiamo ridotto la nostra buildtime da 12 minuti a 3 minuti.

Problemi correlati