我正在尝试使用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帮助文本:
的AutoBuild。必须与。一起使用 文件名选项。指定时, 项目或项目组已建成 IDE启动时自动执行。任何 然后是提示,错误或警告 保存到文件中。然后IDE退出。 这有助于批量构建 批处理文件中的模式。错误 成功后,级别设置为0 构建和1为失败的构建。通过 默认情况下,输出文件具有相同的 name作为指定的文件名 文件扩展名已更改为.err。 这可以使用o覆盖 选项
答案 0 :(得分:6)
唯一的帮助是指命令行编译器dcc32.exe而不是IDE。
用dcc32.exe替换delphi32.exe可以解决您的问题。