1

我正在尝试使用 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 选项覆盖

4

1 回答 1

6

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

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

于 2009-11-26T20:47:40.107 回答