Я пытаюсь автоматизировать некоторые устаревшие сборки Delphi 5 с помощью сценария MSBuild, и у меня возникают проблемы с записью ошибок. Думая, что с прохождением MSBuild возникла какая-то проблема, я также попробовал использовать командный файл и все еще получаю обратные проходы (0), когда сборка должна завершиться неудачно (1). % 2 - это путь к delphi, а% 3 - это имя проекта.
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
Согласно онлайн-справке:
Уровень ошибки равен 0 для успешных сборок и 1 для неудачных сборок.
В настоящее время мой проект терпит неудачу (отображается в файле журнала), но мой командный файл работает как PASS.
[Неустранимая ошибка] MyFile.pas (43): файл не найден: 'aa.dcu'
Это ошибка в Delphi 5 или мне что-то не хватает?
Полный текст справки IDE для параметра -B в delphi32.exe:
AutoBuild. Должен использоваться с опцией имени файла. Если указано, проект или группа проектов создается автоматически при запуске IDE. Все подсказки, ошибки или предупреждения затем сохраняются в файл. Затем IDE закрывается. Это упрощает сборку в пакетном режиме из пакетного файла. Уровень ошибки равен 0 для успешных сборок и 1 для неудачных сборок. По умолчанию выходной файл имеет то же имя, что и указанное имя файла, при этом расширение файла изменено на .err. Это можно изменить, используя опцию o.