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

有帮助吗?

解决方案

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top