2013-07-24 13 views
5

Ecco il mio file bat.Perché la compilazione tramite MSBuild richiede molto più tempo rispetto all'IDE?

call "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin\rsvars.bat" 
msbuild.exe C:\Work\Project1.dproj /t:Rebuild /p:Config=Debug;Platform=Win32 

Questo sembra funzionare bene; tuttavia, ci vogliono 12 minuti per costruire. La stessa combinazione di configurazione/piattaforma impiega 2 minuti e 30 secondi quando si esegue una compilazione completa nell'IDE. Non sono riuscito a individuare la causa del rallentamento. Qualche idea o impostazione dovrei guardare?

MODIFICA: Utilizzo IDEFixPack 5.3 e tempi di compilazione ~ 2.5 minuti. La rimozione dei risultati di IDEFixPack avviene anche in 12 minuti di build nell'IDE.

+0

Come possiamo riprodurre questo? –

+1

Purtroppo non lo so. Oggi è la mia prima volta che gioco con msbuild, quindi non ne so abbastanza per fornire uno scenario riproducibile. Posso provare con un'app campione, ma le condizioni saranno molto diverse dalla mia applicazione commerciale che ha 3.560.000 righe. Non ero sicuro se ci fossero noti switch del compilatore in msbuild che dovrei guardare. –

+0

Ho dimenticato un dettaglio riguardante l'IDE. Io uso il fix pack IDE, ma non ho mai visto una differenza di prestazioni da nessuna parte vicino a questa quando è abilitato rispetto a disabilitato, anche se probabilmente rappresenta solo una piccola parte della differenza. –

risposta

2

Per suggerimento di David Heffernan Ho rimosso IDEFixPack e vedo gli stessi 12 minuti di build che uso con msbuild.

+1

+1 In questo caso dovresti essere in grado di utilizzare il fastdcc di Andy per accelerare la build della riga di comando –

+0

Impressionante. Non ero a conoscenza di quel pizzico. Sarò sicuro di indagare. Il nostro processo di compilazione è diventato alquanto complicato. Usiamo FinalBuilder che funziona bene, ma le azioni di compilazione di Delphi sembrano perdere l'impostazione del numero di versione dell'auto-incremento e i numeri di versione di whack. Ho una utility per aggiornare le impostazioni della versione di dproj prima di chiamare msbuild. Ho trovato i tuoi post su StackOverflow più utili per fare lo switch. Grazie! –

+0

Felice di essere stato di qualche piccolo aiuto! –

1

Suppongo che ci siano alcuni pacchetti per i quali l'IDE in qualche modo può trovare i dcu compilati nel percorso e MSBuild può solo trovare la fonte.

MSBuild non genera un registro di compilazione che è possibile esaminare o pubblicare qui?

+2

Perché dovrebbe succedere? L'intero punto della nuova build basata su msbuild è che le build da riga di comando e IDE utilizzano percorsi di ricerca identici. Sento che questo sarebbe meglio come commento. –

Problemi correlati