如何让MSBuild完全构建相当于dcc32 -b的Delphi项目?

时间:2009-11-20 22:06:27

标签: delphi msbuild dcc32

如何让MSBuild完全构建相当于dcc32 -b的Delphi项目?

我有两个我正在尝试构建的项目,第一个使用一些条件定义,它们通过msbuild传递给dcc32。但是,一些常见的单元似乎卡在第一组条件中,因此第二个项目构建不正确。

5 个答案:

答案 0 :(得分:11)

我相信它是 / t:rebuild ,msbuild输出列出所有dcu的“删除文件:...”,然后构建项目。

我使用批处理文件来调用msbuild来构建delphi项目,对于Delphi 2007和Delphi 2009(它只有%BDS%的不同路径):

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

[注意,来自this question,对于发布“构建配置”,Delphi 2009为/p:config=Release,Delphi 2007为/p:Configuration=Release]

答案 1 :(得分:1)

我想问题Delphi MSBuild Build Configuraions From Command Line包含答案。尝试

msbuild /target:Build

答案 2 :(得分:0)

我记得在D7中,当GUI与dcc32产生不同的构建时,存在类似的问题。看一下dcc32.cfg文件的位置和内容。它们实际上可以包含所需的条件。一条有条件的每行

答案 3 :(得分:0)

另一种选择是在第一次构建完成之后和开始下一次构建之前删除已编译单元的DCU。

答案 4 :(得分:0)

使用我的RAD Studio 2010 Professional,未定义/t:rebuild。我想了

MSBuild.exe /t:Build /p:config=Release;DCC_BuildAllUnits=true

完成工作