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

如何让MSBuild完成相当于dcc32-b的Delphi项目的完整构建?,delphi,msbuild,dcc32,Delphi,Msbuild,Dcc32,如何让MSBuild完成相当于dcc32-b的Delphi项目的完整构建 我正在尝试构建两个项目,第一个项目使用一些条件定义,它们通过msbuild传递给dcc32。但是,一些常见的单元似乎被第一组条件卡住了,因此第二个项目的构建不正确。正如我在D7中所记得的,当GUI与dcc32生成不同的构建时,也存在类似的问题。查看dcc32.cfg文件的位置和内容。它们实际上可以包含您需要的任意多个条件。每行一个条件另一个选项是在第一次构建完成后和开始下一次构建之前删除已编译单元的DCU。我想问题包含了答

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


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

正如我在D7中所记得的,当GUI与dcc32生成不同的构建时,也存在类似的问题。查看dcc32.cfg文件的位置和内容。它们实际上可以包含您需要的任意多个条件。每行一个条件

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

我想问题包含了答案。试一试

msbuild /target:Build

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

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


[注意,对于版本“构建配置”,Delphi 2009是
/p:config=Release
,Delphi 2007是
/p:Configuration=Release
]

对于我的RAD Studio 2010 Professional,未定义
/t:rebuild
。我想

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

当在命令行上运行msbuild时,Delphi 2006使用的作业是否会输出许多空行,设置DCC_Quiet环境变量会将-Q参数传递给dcc32(请参阅)它似乎对Delphi 2009没有任何作用。您还可以从msbuild命令行将DCC_设置为Quiet:
msbuild-p:DCC_Quiet=true
@jasonpenny我想您谈论的是Delphi 2007,而不是Delphi 2006。
MSBuild.exe /t:Build /p:config=Release;DCC_BuildAllUnits=true