【问题标题】:Delphi 5 IDE command-line return codesDelphi 5 IDE 命令行返回码
【发布时间】:2009-11-26 20:34:16
【问题描述】:

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

【问题讨论】:

    标签: delphi batch-file delphi-5


    【解决方案1】:

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

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

    【讨论】:

    • 我从IDE的帮助文件中引用:IDE命令行选项delphi32.exe项目选项-选项b。
    • 虽然您对指示 IDE 命令行选项的帮助可能是正确的,但您可能会更好地更改脚本以直接使用 dcc32.exe 命令行编译器,正如 Andreas 建议的那样。有很多人使用 dcc32.exe 为许多版本的 Delphi 自动构建。事实上,在后来的 Delphi 版本中,许可发生了变化,明确允许在多台 PC 上安装命令行编译器,以明确进行命令行构建。
    • 我最初是想减少自动化的时间。如果我切换到 dcc32,是否有任何指针可以保留开发人员在 IDE 中设置的构建属性?我还需要包括一些环境设置。
    • 您需要针对全局环境设置调整 dcc32.cfg。除此之外,你应该没问题。
    猜你喜欢
    • 2011-09-02
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 2020-02-04
    • 2018-09-17
    • 1970-01-01
    相关资源
    最近更新 更多