如何通过MSBuild将参数传递给编译器?

Rob*_*ank 7 delphi msbuild

我正在使用下面的代码让MSBuild构建一个Delphi 2010 groupproj:

   MSBuild C:\src\myprojgroup.groupproj  /target:Build /p:config=Release
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何修改上面的行,以便我可以传递这个参数

   -EC:\mypath
Run Code Online (Sandbox Code Playgroud)

到编译器(bcc32.exe).

我花了相当多的时间试图在网上找到这个./ property:name = value似乎可能是我需要的,但到目前为止还没有.

这是否可能,或者我现在必须了解MSBUILD配置文件...

Nic*_*ges 7

汤姆 -

可能最简单的方法是在IDE中打开项目,在IDE中设置所需的设置,然后保存.

更好的是为这些设置设置特定的构建配置,并使用它.

IDE使用MSBuild本身,因此您在IDE中进行的任何设置都保存在*.DPROJ文件(或您的情况下为GROUPPROJ)中,因此当您执行命令行时,将使用完全相同的设置.在IDE中.如果对此特定选项集使用特定的构建配置,则只需在命令行上调用该配置,即可获得所需的配置.

在其他更短的单词中:让IDE为您完成工作.


Ken*_*ite 4

在 Delphi 中更改构建配置,或者在 .DPROJ 文件中手动更改。如果您在这些地方更改发布配置本身,那就没问题了。

或者,查看 .dproj 文件并查看您想要的设置的名称(例如“IncludePath”或“OutputDir”)。然后您可以使用 msbuild 的 /property 开关。例如:

msbuild /property:WarningLevel-2;OutputDir=bin\Debug myproj.dproj
Run Code Online (Sandbox Code Playgroud)

您可以从命令窗口提示符中使用以下命令查看这些命令行开关和示例:

msbuild /? | more
Run Code Online (Sandbox Code Playgroud)

快速检查 D2007 中的 .dproj 文件表明您可能正在寻找 或DCC_IncludePath属性DCC_UnitSearchPath