Коды возврата командной строки Delphi 5 IDE

Я пытаюсь автоматизировать некоторые устаревшие сборки 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.


person Rob Hunter    schedule 26.11.2009    source источник


Ответы (1)


Единственная справка относится к компилятору командной строки dcc32.exe, а не к IDE.

Замена delphi32.exe на dcc32.exe должна решить вашу проблему.

person Andreas Hausladen    schedule 26.11.2009
comment
Я взял цитату из файла справки IDE: Параметры командной строки IDE delphi32.exe Параметры проекта - вариант b. - person Rob Hunter; 26.11.2009
comment
Хотя вы можете быть правы насчет справки, указывающей параметры командной строки для IDE, вам, вероятно, было бы гораздо лучше изменить свой сценарий, чтобы использовать компилятор командной строки dcc32.exe напрямую, как предлагает Андреас. Многие люди используют dcc32.exe для автоматической сборки многих версий Delphi. Действительно, лицензирование изменилось в более поздних версиях Delphi, чтобы явно разрешить установку компилятора командной строки на нескольких ПК с явной целью выполнения сборок командной строки. - person Conor Boyd; 27.11.2009
comment
Изначально я пытался сократить время на автоматизацию. Если я переключусь на dcc32, есть ли какие-нибудь указатели на сохранение свойств сборки, которые разработчики установили в среде IDE? Есть также несколько настроек среды, которые мне нужно включить. - person Rob Hunter; 27.11.2009
comment
Вам необходимо настроить dcc32.cfg для глобальных настроек среды. В остальном все будет в порядке. - person Lieven Keersmaekers; 27.11.2009