如何用空字符串覆盖Delphi 2007 dproj文件中的设置?

时间:2014-08-03 14:38:11

标签: delphi msbuild delphi-2007

An answer to this question描述了如何通过在msbuild命令行上指定它们来覆盖Delphi 2007的命令行编译器设置,如下所示:

msbuild yourproject.dproj /p:DCC_DcpOutput="d:\bla\blub"

我已经测试了它并且它有效。

Delphi IDE允许我在项目选项中指定此路径,如果我将其留空,则使用适合我的默认值。不幸的是,我有一些第三方软件包将此路径设置为源的子目录。我想在msbuild命令行上覆盖它,而不是编辑项目设置。

我试过这个

msbuild yourproject.dproj /p:DCC_DcpOutput=""

和这个

msbuild yourproject.dproj /p:DCC_DcpOutput=

但他们都没有按照我想要的方式工作。两者都会导致在.dproj文件所在的目录中生成.dcp文件,而不是默认的输出目录。

如果我明确指定了这样的目录

msbuild yourproject.dproj /p:DCC_DcpOutput=C:\Users\Public\Documents\RAD Studio\5.0\Dcp

它有效,但这意味着它将特定于特定的Delphi安装,因为此路径因Windows版本而异(上面是Windows 8,在Windows XP中路径不同)。

因为我想在一个脚本中使用它,该脚本在给定的Delphi 2007安装中自动编译和安装项目的所有必需包,这些安装可以在Windows XP,Windows 7 32位,Windows 7 64位和Windows 8 64上比特,我想避免这个。

我可以尝试使用一些环境变量,但似乎没有一个符合要求。

那么,有没有办法让行为好像在.dproj文件中没有DCC_DcpOutput条目?

1 个答案:

答案 0 :(得分:3)

如果在项目选项中为DCP输出目录指定空值,IDE将从环境选项中获取值。其默认值为$(BDSCOMMONDIR)\Dcp,可在IDE中进行检查。

因此指定%BDSCOMMONDIR%\Dcp应该可以解决问题。