2009-11-20 5 views
5

Wie kann ich MSBuild dazu bringen, einen vollständigen Build eines Delphi-Projekts zu erstellen, das äquivalent zu dcc32 -b ist?Wie kann ich MSBuild dazu bringen, einen vollständigen Build eines Delphi-Projekts zu erstellen, das äquivalent zu dcc32 -b ist?

Ich habe zwei Projekte, die ich versuche zu bauen, die erste verwendet einige bedingte definiert, die über Msbuild an die dcc32 übergeben werden. Einige gebräuchliche Einheiten scheinen jedoch mit den ersten Bedingungen in Verbindung zu bleiben, so dass das zweite Projekt nicht ordnungsgemäß erstellt wird.

Antwort

9

Ich glaube, es ist /t: Wiederaufbau, die msbuild Ausgabelisten „Löschen von Dateien: ...“ für alle DCU ist, baut dann das Projekt.

Ich benutze eine Batch-Datei msbuild zu nennen delphi Projekte zu bauen, für Delphi 2007 und Delphi 2009 (die nur einen anderen Weg für %BDS% hat):

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 

[Anmerkung von this question, für Release " Build Configuration ", Delphi 2009 ist /p:config=Release und Delphi 2007 ist /p:Configuration=Release]

+0

Was ist DCC_Quiet für? – Zartog

+1

Delphi 2006 verwendet, um viele leere Zeilen auszugeben, wenn durch Ausführen von Msbuild auf der Befehlszeile, Festlegen der DCC_Quiet-Umgebung var den Parameter -Q an dcc32 übergeben würde (siehe http://qc.embarcadero.com/wc/qcmain.aspx?d= 56289) es sieht aus wie es nichts für Delphi hat 2009 – jasonpenny

+0

Sie auch DCC_Quiet vom msbuild Befehlszeile festlegen können: 'msbuild -p: DCC_Quiet = true' –

0

Wie ich in D7 erinnere, gab es ein ähnliches Problem, wenn GUI vs dcc32 verschiedene Builds produziert. Sehen Sie sich den Speicherort und den Inhalt Ihrer dcc32.cfg-Datei (en) an. Sie können tatsächlich so viele Bedingungen enthalten, wie Sie benötigen. Eine bedingte pro Zeile

0

Eine andere Option ist, die DCUs der kompilierten Einheiten zu löschen, nachdem Ihr erster Build abgeschlossen ist und bevor Sie Ihren nächsten Build starten.

0

Mit meinem RAD Studio 2010 Professional ist /t:rebuild nicht definiert. Ich dachte

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

wird der Auftrag

Verwandte Themen