【问题标题】:How to build a Delphi project in TeamCity如何在 TeamCity 中构建 Delphi 项目
【发布时间】:2015-11-06 10:11:36
【问题描述】:

我正在尝试在 TeamCity 中构建一个 delphi 项目,但我无法让它工作。

我正在使用 MSBuild 构建项目,并且还在构建中添加了 BDS 参数,但我一直收到错误:MSB4040 项目中没有目标。

【问题讨论】:

  • 您是否在执行构建之前执行了 RSvars.bat 文件?
  • @Andy_D 不,我还没有尝试过。如何从 TeamCity 运行它?
  • 我不熟悉 TeamCity,但我已经成功设置 MSBuild 以在 TFS 环境中构建 Delphi 应用程序。您需要注意几件事。首先需要设置Delphi需要的各种环境变量和路径。其中大部分是由 rsvars.bat 批处理文件完成的。其次,需要正确设置您的 EnvOptions.proj 文件以匹配构建机器上的环境。该文件位于 %APPDATA%\Embarcadero\xx,x\ 其中 xx.x 是您的 Delphi 版本。
  • @Andy_D 需要对 EnvOptions.proj 文件进行哪些更改?我从来没有在任何地方读过这个。
  • 查看我刚刚发布的答案。在我设法让它工作之前,我遇到了类似的问题。在这方面的文档很差。

标签: delphi compiler-errors msbuild teamcity


【解决方案1】:

您需要注意几件事。首先需要设置Delphi需要的各种环境变量和路径。其中大部分是由 rsvars.bat 批处理文件完成的,但您可以设置自己的。其次,您的 EnvOptions.proj 文件需要正确设置以匹配构建机器上的环境。该文件位于 %APPDATA%\Embarcadero\xx,x\ 其中 xx.x 是您的 Delphi 版本。

以下带注释的 CMD 文件是我用来在 TFS 环境中构建 Delphi XE7 应用程序的文件,应该可以与 TeamCity 和其他构建工具一起使用:-

@echo off ::: ::: Example for Build Delphi Project with MSBuild ::: echo. echo using MSBuild from VStudio 2013 echo. SET MSBUILD_EXE=C:\Program Files (x86)\MSBuild\12.0\bin\MSBuild.exe echo. echo A copy of a Delphi installation from a developers machine is ok. MSBuild calls dcc32/dcc64, not the IDE. echo The build targets are included in "$(DelphiInstallDir)\bin\CodeGear.Delphi.Targets". echo DefaultTarget is "Make" echo. echo. echo Set Delphi XE7 Vars echo. SET BDS=C:\DelphiXE7 SET BDSBIN=%BDS%\bin SET BDSLIB=%BDS%\lib SET BDSTMP=%BDS%\Temp echo. echo On a local Delphi developer machine the actual used Delphi settings are located here: echo "%APPDATA%\Embarcadero\BDS\15.0\EnvOptions.proj" echo. echo The directories and files included in "EnvOptions.proj" must exist on the build machine!!! echo. echo Copy the (maybe modified) Delphi settings on your build machine to %APPDATA%\Embarcadero\BDS\15.0 echo. MKDIR "%APPDATA%\Embarcadero\BDS\15.0" COPY /Y /B /V "%BDSTMP%\EnvOptions.proj" "%APPDATA%\Embarcadero\BDS\15.0\EnvOptions.proj" echo. echo Set the Delphi Project Vars echo. SET PROJECT_SRC=C:\MyProjectSource SET PLATFORM=Win32 SET CONFIG=Debug echo. echo Build Delphi Project with MSBuild echo. echo + /p = Parameters for the Delphi Project Build echo. echo + /t = Targets to be executed, e.g. Clean and Build echo. "%MSBUILD_EXE%" "%PROJECT_SRC%\myProject\myProject1.dproj" /p:Config=%CONFIG%;Platform=%PLATFORM% /t:Clean;Build IF NOT ERRORLEVEL 0 GOTO ERROR GOTO END :ERROR echo. echo There were errors! echo. pause EXIT :END pause

【讨论】:

  • 谢谢,这看起来很有希望!我将对此进行测试,如果可行,我将接受您的回答。
【解决方案2】:

您可以通过以下步骤更正设置 teamcity 以使用 MSBuild 进行构建:

首先,您应该在 teamcity 上定义声明由 rsvars.bat 设置的环境变量的参数,为此在您的项目中访问参数并创建新配置,选择环境变量类型,设置相同的名称和rsvars.bat 文件中的值,又名:BDS、BDSCOMMONDIR 等。

之后,在您的 msbuild 步骤中,将目标选项编辑为“build”。

您可以看到此信息记录在此处http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Building_a_Project_Using_an_MSBuild_Command

在这里你可以看到我的参数配置

这是 MSBuild 项目配置

【讨论】:

    猜你喜欢
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    相关资源
    最近更新 更多