这个问题的回答描述了如何通过在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条目时相同的行为?