【发布时间】:2014-09-16 10:27:33
【问题描述】:
我正在从 Delphi XE3 升级到 XE7,我注意到我的 FinalBuilder 脚本不再按预期工作。
我有各种 Delphi 项目配置为将 BPL / DCP 文件输出到$(BDSCOMMONDIR)\*,它被设置为C:\Users\Public\Documents\Embarcadero\Studio\15.0 的系统环境变量。在 IDE 中打开项目并按预期进行编译,但是,每当我使用 FinalBuilder 编译时,文件都会构建到 C:\Users\Public\Documents\RAD Studio\15.0 并且我不知道为什么,我已经搜索了 所有地方 并且无法查看此路径的设置位置,即
- (IDE) 工具 -> 选项 -> 环境变量
%APPDATA%\Embarcadero\BDS\15.0\environment.proj- FinalBuilder 环境变量
- 系统环境变量
在所有这些位置,路径都符合预期。我的怀疑是在同一台机器上同时安装 XE3 和 XE7 的问题,纯粹是因为 XE3 设置 $(BDSCOMMONDIR) 指向 C:\Users\Public\Documents\RAD Studio\10.0(唯一的区别是产品版本)。
因为我目前只评估 XE7,所以我想尽量避免卸载 XE3,除非它是绝对必要的。
注意 - 这里的另一个区别是,当我安装 XE7 时,我选择了 Delphi 安装,而不是我之前在安装 XE3 时使用的 RAD Studio(我不需要 C++ Builder 的东西)。
有人知道为什么会这样吗?
【问题讨论】:
-
您如何在 FinalBuilder 中指定您希望它使用特定的 Delphi 版本构建?当然,一旦有了这些信息,它就会小心设置适当的环境。我也想知道你为什么在系统环境变量中定义了一个BDSCOMMONDIR环境变量。
-
@DavidHeffernan 在 FinalBuilder 中有一个针对每个单独编译操作的选项,它允许您设置要使用的 Delphi 版本,它适用于 XE3(我想知道这是否可能是一个错误最终建造者?)。我在自己的用户环境变量中有 BDSCOMMONDIR,但更改它似乎没有任何区别,所以我在系统中尝试了它(虽然同样的问题)。此外,有趣的是,更改
environment.proj文件中 BDSCOMMONDIR 的值对Tools -> Environment Options没有任何影响(不确定这些值是从哪里提取的)。 -
我不明白你为什么要在任何地方设置
BDSCOMMONDIRenv vars。这样做不是你的工作。你应该放松所有这些。修改environment.proj是另一个糟糕的举动。你为什么要做这一切? -
@DavidHeffernan 抱歉,我把自己弄糊涂了……我在用户/系统环境变量中设置了
BDSCOMMONDIR,这样它就可以被 FinalBuilder 拾取,原因是因为有一些我们只需要手动复制的预编译 BPL/DCP 文件。但是,事后看来,FinalBuilder 中可能有更好的方法来执行此操作(也许我可以从 Delphi IDE 加载环境变量)。 -
最终它调用了 dcc32,因为那是编译器。或 dcc64 用于 Win64。或者确实是其他编译器之一。但是 msbuild 驱动它。通过 msbuild,您可以确定传递给 dcc32 的选项与从交互式构建中完成的选项相同。
标签: delphi delphi-xe3 finalbuilder delphi-xe7