我正在尝试使用 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
根据在线帮助:
成功构建的错误级别设置为 0,构建失败的错误级别设置为 1。
目前我的项目失败(在日志文件中可见)但我的批处理文件作为 PASS 运行。
[致命错误] MyFile.pas(43):找不到文件:'aa.dcu'
这是 Delphi 5 中的错误,还是我遗漏了什么?
delphi32.exe 上选项 -B 的完整 IDE 帮助文本:
自动构建。必须与文件名选项一起使用。指定后,项目或项目组会在 IDE 启动时自动构建。然后将任何提示、错误或警告保存到文件中。然后 IDE 退出。这有助于从批处理文件以批处理模式进行构建。成功构建的错误级别设置为 0,构建失败的错误级别设置为 1。默认情况下,输出文件与指定的文件名相同,文件扩展名更改为 .err。这可以使用 o 选项覆盖