如何在 TeamCity 中构建 Delphi 项目

2023-12-10

我正在尝试在 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\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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 TeamCity 中构建 Delphi 项目 的相关文章

随机推荐

  • CSS3 背景图像过渡

    我正在尝试使用 CSS 过渡来制作 淡入淡出 效果 但我无法让它与背景图像一起使用 The CSS title a display block width 340px height 338px color black background
  • iPhone自动锁值?

    无法检索自动锁定值吗 或者有人知道如何像现有的警报应用程序一样修改自动锁定时间 Thanks 是的 杰森是对的 您可以使用 application setIdleTimerDisabled YES 停止自动睡眠 但没有办法访问自动锁定值 问
  • 在 Delphi 中以无边框形式/窗口平滑调整大小

    我正在尝试调整无边框表单的大小 但是当我使用右侧 底部增加大小时 边框和旧客户区域之间存在间隙 该间隙取决于移动鼠标的速度 当您从左边框甚至从左下角调整大小时 效果会更加明显 到处都很可怕 我尝试使用其他商业应用程序 它也会发生 当我更改为
  • 在 WPF 中将组合框绑定到 XML

    我知道这个问题已经被问死了 但是我已经尝试了很多我找到的建议答案 并且当我在 VS2013 中启动 WPF 时 组合框仍然没有填充 就这样吧 我有一个名为 People xml 的 XML 文档 其格式如下
  • 如何在 HTML 中定义内联内容库以与 Magnific-Popup 一起使用?

    我的页面上有许多画廊 可以通过各自的按钮启动 我喜欢在按钮旁边定义页面中画廊的标记 然后使用隐藏的想法 mfp hide 但是 当我添加时 我无法激活弹出窗口delegate关键字 否则 这是我到目前为止的代码 HTML div class
  • 如何更改 Rails 迁移 t.timestamps 以在 postgres 中使用 `timestamp(0) without timezone`

    我正在尝试找出如何更改本机数据类型t timestamps用于 Rails 迁移 postgres 中的默认类型是timestamp without timezone 我想要的是timestamp 0 without timezone 我想
  • Spring:确保首先初始化特定的 bean

    我有一个库进行 log4j 的运行时设置和配置 没有 log4j properties 或 log4j xml 我已经定义了一个名为 MyLoggerFactory 的 bean 我希望它成为第一个使用 spring 初始化的 bean 我
  • jQuery DOM 操作 - 性能比较?

    我正在学习使用 jQuery 进行 DOM 操作 并希望了解浏览器性能最佳实践 假设我有两个 DOM 元素 div p ol 等 我希望用户只能看到第一个元素 然后只能看到第二个元素 I could 使用替换 remove 第一个元素和 a
  • javascript中删除小数点后的数字

    var randomNumber Math random 3 3 5 randomNumber alert randomNumber 这段代码返回一个数字 例如 4 589729345235789 我需要它返回 4 5 因此需要它删除小数点
  • 多语言站点,子目录作为语言(RewriteRule)

    对于我的网站 我想将我的网址重写为 www xxx com en index php 而不是 www xxx com index php language enwww xxx com nl index php 而不是 www xxx com
  • 今天全日历开始日期

    我正在努力从今天开始制定完整的日历 当我这样做时 它会显示整周 calendar fullCalendar Options calendar fullCalendar gotoDate currentDate 其中 currentDate
  • 内存数据库的概念以及如何查看我的数据是否已填充到 HSQL DB 中?

    我在内存数据库中使用 HSQL 来测试我的应用程序 并使用 SQL Server 作为主数据库 现在在进行测试时 HSQL 数据库将填充与我在 SQL Server 中相同的数据 现在我正在尝试测试特定的数据从数据库检索数据的服务 如果直接
  • sql 从函数或存储过程返回表

    这更多的是一个语法问题 我正在尝试编写一个可以嵌入到查询中的存储过程或函数 例如 select from MyBigProcOrFunction 我正在尝试定义一个表格函数 但我不明白如何执行此操作 因为我构建临时表来计算数据 然后才最终在
  • 选择最近 7 天的最大值

    我通过每小时插入描述这些项目的记录作为 cron 作业来跟踪某些项目 我有一张桌子 steamid int eventid auto increment itemid int value int time unix format 我使用每小
  • AWS部署经常出现故障

    因此 我在 EC2 实例上进行了非常基本的部署 除了几个大问题外 该部署基本上可以正常工作 现在我只是通过 ssh 进入盒子并运行 python m SimpleHTTPServer 80 我在安全组上有一个框 允许端口 80 上的 htt
  • 在 SQL Server Management Studio 中执行 NHibernate 生成的准备好的语句

    配置 NHibernate 以显示执行的 SQL 可以完成预期的任务 但是每当需要将 SQL 字符串复制粘贴到 SQL Server Management Studio 中时 我们就必须对其进行大幅重新排列才能兼容 在我开始开发自己的应用程
  • 与下一行、分组、data.table 进行比较

    我有一个数据框 其中包含每个用户每周的页面浏览量 我想确定每个用户在特定事件发生后他们的观点是否增加 减少或保持不变 我的数据如下所示 Userid week xeventinweek numviews Alice 1 2 5 Alice
  • 如何用StepVerifier验证提供的Mono没有完成?

    With StepVerifier很容易检查是否提供Mono已完成 仅通过expectComplete 中的方法StepVerifier 但是如果需要检查相反的情况该怎么办 我尝试使用这种方法 Test public void neverM
  • 使用 Glide 和 FireBase android 存储和显示图像

    我正在尝试使用 Glide 和 Firebase 上传并显示个人资料图片 上传部分工作成功 但是 如果我尝试从数据库加载该图像 它会显示空白 我的动机是在用户进入活动一次时加载 profile image 他可以点击现有图像并根据自己的意愿
  • 如何在 TeamCity 中构建 Delphi 项目

    我正在尝试在 TeamCity 中构建一个 delphi 项目 但无法让它工作 我正在使用 MSBuild 来构建项目 并且还向构建添加了 BDS 参数 但我不断收到错误 MSB4040 项目中没有目标 您需要注意几件事 首先 需要设置De