Delphi 5 IDE命令行返回码

Rob*_*ter 1 delphi batch-file delphi-5

我试图使用MSBuild脚本自动化一些传统的Delphi 5版本,并且在捕获错误时遇到问题.考虑到MSBuild传递存在一些问题,我还尝试了一个批处理文件,当构建失败时(1)我仍然收到反向传递(0).%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
Run Code Online (Sandbox Code Playgroud)

根据在线帮助:

成功构建的错误级别设置为0,失败的构建的错误级别设置为1.

目前我的项目失败(在日志文件中可见)但我的批处理文件作为PASS运行.

[致命错误] MyFile.pas(43):找不到档案:'aa.dcu'

这是Delphi 5中的一个错误,还是我错过了什么?


delphi32.exe上选项-B的完整IDE帮助文本:

的AutoBuild.必须与filename选项一起使用.指定后,IDE启动时会自动构建项目或项目组.然后将任何提示,错误或警告保存到文件中.然后IDE退出.这有助于从批处理文件以批处理模式进行构建.成功构建的错误级别设置为0,失败的构建的错误级别设置为1.默认情况下,输出文件的名称与文件扩展名更改为.err时指定的文件名相同.可以使用o选项覆盖它

And*_*den 6

唯一的帮助是指命令行编译器dcc32.exe而不是IDE.

用dcc32.exe替换delphi32.exe可以解决您的问题.

  • 虽然您可能对IDE指示命令行选项的帮助是正确的,但您可能会更好地更改脚本以直接使用dcc32.exe命令行编译器,如Andreas所建议的那样.有许多人使用dcc32.exe进行许多版本的Delphi的自动构建.实际上,在后续版本的Delphi中,许可证发生了变化,明确允许在多台PC上安装命令行编译器,以明确执行命令行构建. (2认同)