如何让 MSBuild 完成与 dcc32 -b 等效的 Delphi 项目的完整构建?
我有两个正在尝试构建的项目,第一个使用一些条件定义,它们通过 msbuild 传递给 dcc32。但是,一些常见的单元似乎被第一组条件卡住了,因此第二个项目构建不正确。
我相信它是/t:rebuild,msbuild 输出列出了所有 dcu 的“删除文件:...”,然后构建项目。
对于 Delphi 2007 和 Delphi 2009(只是有不同的路径%BDS%
),我使用批处理文件调用 msbuild 来构建 delphi 项目:
set DCC_Quiet=true
set BDS=%ProgramFiles%\CodeGear\RAD Studio\5.0
set MSBuildBinPath=%WinDir%\Microsoft.NET\Framework\v2.0.50727
call %MSBuildBinPath%\msbuild /nologo /t:rebuild /p:config=Release %1 %2 %3 %4 %5
[注意,从这个问题,对于发布“构建配置”,Delphi 2009 是/p:config=Release
,Delphi 2007 是/p:Configuration=Release
]
我猜这个问题Delphi MSBuild Build Configuraions From Command Line包含了答案。尝试
msbuild /target:Build
我记得在 D7 中,当 GUI 与 dcc32 产生不同的构建时,也会出现类似的问题。查看 dcc32.cfg 文件的位置和内容。它们实际上可以包含您需要的尽可能多的条件。每行一个条件
另一种选择是在第一次构建完成后和开始下一个构建之前删除已编译单元的 DCU。
用我的 RAD Studio 2010 Professional,/t:rebuild
没有定义。我估计
MSBuild.exe /t:Build /p:config=Release;DCC_BuildAllUnits=true
做这项工作