如何在 TeamCity 中构建 Delphi 项目

How to build a Delphi project in TeamCity

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

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

您需要注意几件事。首先,需要设置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.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.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.0
echo.
MKDIR "%APPDATA%\Embarcadero\BDS.0"
COPY /Y /B /V "%BDSTMP%\EnvOptions.proj" "%APPDATA%\Embarcadero\BDS.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

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

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

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

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

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

这是 MSBuild 项目配置