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条目?
答案 0 :(得分:3)
如果在项目选项中为DCP输出目录指定空值,IDE将从环境选项中获取值。其默认值为$(BDSCOMMONDIR)\Dcp
,可在IDE中进行检查。
因此指定%BDSCOMMONDIR%\Dcp
应该可以解决问题。