【发布时间】:2012-01-20 09:33:25
【问题描述】:
我有以下示例代码:
program boohoo;
{$APPTYPE CONSOLE}
{$IFDEF boo}
{$MESSAGE warn 'boo'}
{$ENDIF}
{$IFDEF hoo}
{$MESSAGE warn 'hoo'}
{$ENDIF}
begin
end.
在项目选项中定义了条件boo。我希望能够将条件 hoo 添加为我的 msbuild 命令行的一部分。
我试过这样:
msbuild boohoo.dproj /p:Config=Release;DCC_Define="$(DCC_Define);hoo"
输出显示hoo,但不显示boo。当我使用详细输出查看 dcc32 命令时,我看到了
-D$;hoo
显然我可以这样做:
msbuild boohoo.dproj /p:Config=Release;DCC_Define="boo;hoo"
但我自然想使用项目选项中声明的任何条件加上我在命令行中指定的内容。
我有什么方法可以参考底层配置中的值来指定这个属性吗?
【问题讨论】:
-
我可以重现这样一个事实,即您似乎在这里有一个非此即彼的选择:使用 dproj 中的定义或命令行定义,但将一个附加到另一个似乎需要您编写某种实用程序来提取特定构建的定义,然后附加到它们。
-
@Warren 你可以重现我描述的行为。但我希望可能有一些魔法。例如,如果你可以写
DCC_Define+=hoo -
您可以通过破解 Borland.Delphi.Targets msbuild 配置文件取得一些成功。但这对我来说似乎真的不便携。我怀疑这条线:
<Defines>$(DCC_Define)</Defines>
标签: delphi msbuild delphi-xe2