2009-11-20 15 views
5

¿Cómo puedo hacer que MSBuild construya por completo un proyecto Delphi equivalente a dcc32 -b?¿Cómo puedo hacer que MSBuild construya por completo un proyecto Delphi equivalente a dcc32 -b?

Tengo dos proyectos que intento construir, el primero usa algunas definiciones condicionales, que se pasan a través de msbuild a dcc32. Sin embargo, algunas unidades comunes parecen estar bloqueadas con el primer conjunto de condicionales, por lo que el segundo proyecto se construye incorrectamente.

Respuesta

9

Creo que es /t: reconstruir, las listas de salida msbuild "borrar el archivo: ..." para todos los de la DCU, a continuación, genera el proyecto.

Puedo usar un archivo por lotes para llamar msbuild para construir proyectos de Delphi, para Delphi 2007 y Delphi 2009 (que solo tiene un camino diferente para %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, desde this question, para la liberación " construir configuración", Delphi 2009 es /p:config=Release, y Delphi 2007 es /p:Configuration=Release]

+0

¿Cuál es DCC_Quiet para? – Zartog

+1

Delphi 2006 solía dar salida a muchas líneas en blanco cuando se ejecuta a través de msbuild en la línea de comandos, estableciendo el entorno DCC_cal var pasaría el parámetro -Q a dcc32 (vea http://qc.embarcadero.com/wc/qcmain.aspx?d= 56289) Parece que no hace nada para Delphi 2009. – jasonpenny

+0

También puede configurar DCC_Quiet desde la línea de comandos de msbuild: 'msbuild -p: DCC_Quiet = true' –

0

Como recuerdo en D7 hubo un problema similar cuando la GUI vs dcc32 producía compilaciones diferentes. Eche un vistazo a la ubicación y el contenido de su (s) archivo (s) dcc32.cfg. De hecho, pueden contener tantos elementos condicionales como necesites. Un condicional por línea

0

Otra opción es eliminar las DCU de las unidades compiladas después de que se complete su primera compilación y antes de que inicie la siguiente.

0

Con mi RAD Studio 2010 Professional, /t:rebuild no está definido. Supuse

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

hace el trabajo

Cuestiones relacionadas