Pregunta

Estoy intentando automatizar algunas compilaciones de Delphi 5 heredadas con una secuencia de comandos de MSBuild, y estoy teniendo problemas para capturar errores. Pensando que había algún problema con la aprobación de MSBuild, también probé un archivo por lotes y todavía recibo pasadas anteriores (0) cuando la compilación debería fallar (1). % 2 es la ruta a delphi y% 3 es el nombre del proyecto.

REM delphi_ide_build.bat
@ECHO OFF
"%1 %2\Bin\delphi32.exe" %3.dpr -b

REM BCB5 returns 0 if build succeeds, 1 if build fails
IF ERRORLEVEL 1 GOTO FAIL
IF ERRORLEVEL 0 GOTO PASS

:FAIL
ECHO An Error Occured in Build - Showing Log
ECHO ---------------------------------------
type %3.err
EXIT 1

:PASS
ECHO The Build Passed - Showing Log
ECHO ------------------------------
type %3.err
EXIT 0

Según la ayuda en línea:

  

El nivel de error se establece en 0 para   construcciones exitosas y 1 para fallidos   compilaciones.

Actualmente, mi proyecto falla (visible en el archivo de registro) pero mi archivo por lotes se ejecuta como un PASS.

  

[Error grave] MyFile.pas (43): Archivo no encontrado: 'aa.dcu'

¿Se trata de un error en Delphi 5 o me falta algo?


Texto de ayuda IDE completo para la opción -B en delphi32.exe:

  

AutoBuild. Debe ser utilizado con el   opción de nombre de archivo. Cuando se especifique, el   proyecto o grupo de proyecto se construye   automáticamente cuando se inicia el IDE. Alguna   Consejos, errores o advertencias son entonces   guardado en un archivo. Luego sale el IDE.   Esto facilita hacer compilaciones por lotes.   modo de un archivo por lotes. El error   El nivel se establece en 0 para tener éxito   compilaciones y 1 para compilaciones fallidas. Por   por defecto, el archivo de salida tiene la misma   nombre como el nombre de archivo especificado con   la extensión del archivo cambió a .err.   Esto puede ser anulado usando la o   opcion

¿Fue útil?

Solución

La única ayuda se refiere al compilador de línea de comandos dcc32.exe y no al IDE.

Reemplazar el delphi32.exe por dcc32.exe debería resolver su problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top