【问题标题】:Delphi 2007 (or 2009) build events tied to build configurations?与构建配置相关的 Delphi 2007(或 2009)构建事件?
【发布时间】:2009-03-28 03:54:05
【问题描述】:

是否可以仅为 Delphi 2007 中的特定构建配置添加构建事件?

我使用 2007 年,但也对您在 2009 年可以做什么感兴趣。

干杯 山姆

【问题讨论】:

    标签: delphi delphi-2007


    【解决方案1】:

    是的!

    因为您可以在每个构建配置中单独定义。 您可以检查项目定义的条件构建处理。

    我使用类似的东西:

    echo $(DEFINES) | find "RELEASE"> nul
    if not errorlevel 1 goto
    release
    
    echo $(DEFINES) | find "DEBUG" > nul
    if not errorlevel 1 goto debug
    
    goto end
    
    :release
    echo Processing RELEASE Build:
    ...
    goto end
    
    :debug
    echo Processing DEBUG Build:
    ..
    goto end
    
    :end
    

    【讨论】:

    • 这很有效,而且比接受的第一个解决方案容易得多。请注意,它应该在一行中显示“if not errorlevel 1 goto release”,但除此之外,它的工作原理与宣传的一样。
    • 嗯,不能让它在 XE2 中工作:我总是得到“命令 [...] exited with code 1。”并且没有一个块被执行。我可以看到$(DEFINES) 宏得到了扩展,不过...
    【解决方案2】:

    没有。

    您可以为 Delphi 2009 中的每个构建配置设置(资源)编译器设置。但这不适用于其他设置。

    你可以伪造它,但需要一些时间:

    1. 在预构建中,删除 conf*.dcu 文件。
    2. 为调试配置定义 DEBUG。
    3. 将以下内容添加到项目文件中:

    代码:

    uses
      ..
    {$IFDEF DEBUG}
      confDebug,
    {$ELSE}
      confRelease,
    {$ENDIF}
      ..
    
    1. 现在让构建后步骤检查是否存在 confDebug.dcu 或 confRelease.dcu 以查找使用的构建配置。

    这有点麻烦,但你可以为所欲为。

    【讨论】:

    • 简短回答:“不”。更长的答案:“是的”。 :-)
    • 解决方案和破解是有区别的。但也许我是个挑剔的人;-)。
    • 感谢 Gamecat。不是一个好的解决方案,我很惊讶 delphi 不支持基于配置的不同构建事件,但非常感谢您提供的信息。
    • @samhowley,codegear 正忙于处理 borland “缺乏关注”时期的积压工作。我希望这样的功能在未来的版本中得到修复。 (他们的计划是修复大约 100 个小问题)。
    【解决方案3】:

    试试这个:

    if $(Config) == Release do_something
    

    Here你可以找到一些额外的信息

    【讨论】:

      【解决方案4】:

      在使用 XE 时,如果您有兴趣,我将其范围缩小到更简单的范围:

      goto $(Config)
      
      :Release
      compil32 /cc f:\dev\MyProject\Installer\MyProject.iss"
      etc.
      
      :Debug
      

      只有当我将构建配置设置为发布时,它才会构建我的安装程序。如果你想变得更高级,你可以打电话给 Jenkins,让它接管预发布任务。在 Delphi 10.x 中,您不再需要这个技巧了。

      【讨论】:

        猜你喜欢
        • 2010-10-18
        • 1970-01-01
        • 2011-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-28
        • 2015-12-21
        相关资源
        最近更新 更多