2009-11-20 8 views
5

Come posso ottenere MSBuild per eseguire una compilazione completa di un progetto Delphi equivalente a dcc32 -b?Come posso ottenere MSBuild per eseguire una compilazione completa di un progetto Delphi equivalente a dcc32 -b?

Ho due progetti che sto cercando di creare, il primo utilizza alcune definizioni condizionali, che vengono passati tramite msbuild al dcc32. Tuttavia, alcune unità comuni sembrano essere bloccate con il primo set di condizionali, quindi il secondo progetto è costruito in modo errato.

risposta

9

Credo che sia /t: ricostruire, le liste di uscita MSBuild "File Eliminazione: ..." per tutti i DCU di, poi costruisce il progetto.

Io uso un file batch per chiamare MSBuild per costruire progetti di Delphi, per Delphi 2007 e Delphi 2009 (che ha solo un percorso diverso per %BDS%):

set DCC_Quiet=true 
set BDS=%ProgramFiles%\CodeGear\RAD Studio\5.0 
set MSBuildBinPath=%WinDir%\Microsoft.NET\Framework\v2.0.50727 

call %MSBuildBinPath%\msbuild /nologo /t:rebuild /p:config=Release %1 %2 %3 %4 %5 

[Nota, da this question, per Release " Configurazione build ", Delphi 2009 è /p:config=Release e Delphi 2007 è /p:Configuration=Release]

+0

Qual è DCC_Quiet per? – Zartog

+1

Delphi 2006 utilizzato per generare molte righe vuote quando viene eseguito tramite msbuild sulla riga di comando, impostando l'ambiente DCC_Quiet var passerebbe il parametro -Q a dcc32 (consultare http://qc.embarcadero.com/wc/qcmain.aspx?d= 56289) Sembra che non faccia nulla per Delphi 2009. – jasonpenny

+0

Puoi anche impostare DCC_Quiet dalla riga di comando di msbuild: 'msbuild -p: DCC_Quiet = true' –

0

Come ricordo in D7 c'era un problema simile quando GUI vs dcc32 produceva build differenti. Dai un'occhiata alla posizione e al contenuto dei tuoi file dcc32.cfg. In realtà possono contenere tutti i condizionali di cui hai bisogno. 1 per riga condizionale

0

Un'altra opzione è quella di eliminare le DCU delle unità compilate dopo aver completato la prima build e prima di avviare la successiva.

0

Con il mio RAD Studio 2010 Professional, /t:rebuild non è definito. Ho pensato

MSBuild.exe /t:Build /p:config=Release;DCC_BuildAllUnits=true 

fa il lavoro

Problemi correlati