2012-09-05 16 views
5

Ho una soluzione di Visual Studio costituita da circa 100 progetti. La maggior parte di essi forma una gerarchia di dipendenze. Ora, se cambio un singolo file .cs per un progetto e lo compilo, anche tutti i progetti dipendenti vengono creati, indipendentemente dal fatto che siano stati modificati o meno. C'è un modo per rendere Visual Studio solo costruire i progetti modificati? Sto sprecando minuti ogni volta che faccio un piccolo cambiamento ricostruendo l'intero lotto. Si aggiunge alla grande!Riduci i tempi di costruzione di Visual Studio

+0

È logico che debba ricostruire i progetti dipendenti, perché deve verificare se non è stato interrotto nulla. Non so se hai un SSD, ma per me ha aiutato ad avere un SSD (tempi di costruzione significativamente più brevi). – Styxxy

+0

Sono abbastanza sicuro che i problemi che incontrereste nel debug farebbero diventare poco pratico. – Stuporman

+1

Avere più di 100 progetti in una soluzione e cambiare la percolazione in lunghi tempi di costruzione è un problema di progettazione/organizzazione. A che punto smetti di cambiare le fondamenta del castello di carte? Sicuramente ne hai alcuni che dovrebbero costare meno 1000 punti? Non esiste una cura facile per questo, niente che si adatti comunque al sito Q + A di un programmatore. Non posso nemmeno incolpare lo strumento, fa solo quello che gli chiedi di fare. Trasforma il tuo disgusto con esso nei messaggi ai membri del tuo team e agli architetti. Non possiamo aiutarti, non ne siamo così contenti quanto te. –

risposta

4

No, non c'è un buon modo per farlo. Qualche incremento incrementale talvolta si verifica (Visual Studio 2010 o successivo), ma non ci sono garanzie.

Compilare i progetti che sono maturi in assiemi e fare riferimento ai progetti instabili (attualmente in fase di sviluppo). Se si stanno facendo dei test di unità adeguati, questo non dovrebbe essere un grosso problema. Dividere e conquistare; terminare prima le dipendenze e renderle stabili, quindi assegnarle agli assembly.

2

Ridurre il numero di progetti.

Ogni progetto produce un DLL - un'unità di distribuzione. This is normally not needed.

Se è necessario organizzare il codice in modo logico, è possibile utilizzare le cartelle all'interno di un progetto.

Inoltre, anziché i riferimenti di progetto, fare riferimento alle DLL create.


Perché questo suggerimento funziona:

  • Meno DLL vengono prodotte.
  • Ci sono meno riferimenti a queste DLL, quindi è necessario copiare meno DLL.
  • I progetti a cui fanno riferimento molti altri progetti vengono ricompilati per ogni progetto di riferimento. Se viene utilizzata una DLL anziché un riferimento al progetto, non verrà eseguita una ricompilazione.
+0

Ciò renderà le build solo più lente, poiché sarà necessario ricostruire lo stesso o più codice. – ssube

+0

@peachykeen - Provalo. Sarai sorpreso. Meno progetti == meno DLL. Meno DLL == meno copia in giro e meno ricompilazioni. – Oded

+0

Ho, sia per meno grandi progetti e più piccoli progetti. Non ero, non aiuta quando il problema è la quantità di codice che deve essere ricostruita. Le copie dei file non sono abbastanza costose da causare questo tipo di problema, sono le ricompense a cascata, che i progetti più grandi non scappano (sempre). – ssube

Problemi correlati