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

8
我正在使用下面的代码行让MSBuild构建Delphi 2010 groupproj项目:
   MSBuild C:\src\myprojgroup.groupproj  /target:Build /p:config=Release

我无法弄清楚如何修改上面的代码行,以便我可以传递此参数。
   -EC:\mypath

给编译器(bcc32.exe)传递参数。

我花了相当长的时间在网上寻找这个答案。/property:name=value 看起来似乎是我需要的,但到目前为止还没有成功。

这是否可能,或者我现在必须学习有关MSBUILD配置文件的知识...

2个回答

7

汤姆 --

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

更好的方法是为这些设置设置一个特定的构建配置,并使用该配置。

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

换句话说:让IDE为您完成工作。


在需要执行与IDE不同的操作的自动化构建时,它并不总是有效。我们使用FinalBuilder来处理这些情况。 - Robert Love
请查看https://dev59.com/xnE95IYBdhLWcg3wSr-D,以获取更多可设置的Delphi项目级属性。 - Lars Truijens
Robert,这就是不同的构建配置存在的意义。;-) 你可以在IDE中完成所有构建配置管理,然后使用FinalBuilder(一个非常好的工具)根据配置执行不同的构建。 - Nick Hodges

4

在 Delphi 中更改您的构建配置,或者手动修改 .DPROJ 文件。如果您在这两个地方更改了 Release 配置本身,则没问题。

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

msbuild /property:WarningLevel-2;OutputDir=bin\Debug myproj.dproj

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

msbuild /? | more

一个快速检查来自D2007的.dproj文件表明,您可能正在寻找DCC_IncludePathDCC_UnitSearchPath属性。

正是我所需要的,Ken。 - RobertFrank

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接