War*_* P 22 delphi msbuild build-automation
我希望实现一个连续的单元测试运行系统,我听说称之为"冒烟"或"tinderbox",(一个构建服务器,可以执行干净的版本控制检查以及给定源存储库中所有内容的完整系统构建或使用Delphi,小团队的"持续集成"之类的东西.
我不愿承诺商业"构建服务器"产品,我希望我可以通过内置于delphi中的MS-Build支持做很多事情.
我正在寻找资源,想法和开始的地方.我不知道如何使用MS Build来达到这个目的. Steve Trevethen有一个博客文章,引用了对旧的dcc32命令行构建的一些讨论,并且一些评论提到ms-build自delphi 2007以来一直在这里.我正在使用Delphi 2010.我正在寻找指导和见解,以及经验,这将告诉我,这是一条合理的道路,如果没有,我应该走哪条路?
我发现你可以使用/ p:DCU_DcuOutput =覆盖msbuild命令行中的Unit(DCU)和EXE Output Directory.请注意,我查看了DPROJ文件中的XML,以了解如何覆盖内容.
但是,它只执行make,而不是构建,并且/ t:rebuild不起作用(编辑:是的.它在DPROJ文件上工作正常,但在GroupProjects上没有.)
我希望在那里有更多的MSBuild-with-Delphi文档?"Rad Studio 2010"产品文档中的MS-Build帮助显示了有关MS-Build的一两件事,但实际上是粗略和不完整的.
相关问题:
Nic*_*ges 17
Delphi 2010使用MSBuild作为它的主要构建引擎.这意味着IDE和命令行都完全相同.这也意味着您可以使用命令行轻松构建现有项目.事实上,我们德尔福团队一直都在做这件事.您无需担心编译器本身的开关 - IDE将创建的DProj文件
在"开始"菜单上有一个命令行,用于将MSBuild与现有的Delphi项目一起使用.它正确设置环境,以便您可以简单地调用:
msbuild myproject.dproj
您还可以从命令行调用特定的构建配置,使用IDE可以使用MSBuild的命令行参数轻松创建所述配置.
如果要自己创建环境,可以运行rsvars.bat批处理文件进行设置.该文件可以在\ bin目录中找到,并且应该可以从默认命令行获得.
该文件包含以下内容:
@SET BDS=<your BDS directory>
@SET BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\7.0
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\v2.0.50727
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;%PATH%
@SET LANGDIR=EN
Run Code Online (Sandbox Code Playgroud)
因此,如果要创建自己的持续集成构建,可以使用MSBuild轻松管理Delphi构建.
Lar*_*ens 11
dproj和groupproj是msbuild文件,你可以查看它们.信息的其他部分可以在msbuild安装路径(C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727)中找到.你会在那里找到几个Borland.*.目标文件.
在msbuild脚本中,您可以看到以其命名的不同目标.例如,groupfile包含Make,Clean和Build目标,您可以使用/ t参数指定这些目标.dproj文件也是如此.dproj文件也有一个ReBuild目标.它做了一个Clean然后是一个Build.如果要对groupfile具有相同的效果,可以指定两个目标:/ t:Clean; Build
您还可以在/ p中找到许多参数.例如,配置指定配置或DCC_Quiet指示dcc32停止输出无用的空格.
因此,从命令行执行使用Release配置的构建是以下命令:
msbuild mygroup.groupproj /p:Configuration=Release /t:Build
Run Code Online (Sandbox Code Playgroud)
免责声明:我看过Delphi 2007的msbuild文件.后来的Delphi版本可能已经更改了目标或参数的名称.只需查看msbuild脚本,找出哪个是哪个.