【发布时间】:2011-12-07 12:48:46
【问题描述】:
我有一个包Package1,它依赖于包PackDependency。 Package1 的 .dpk 包含以下内容:
requires
vcl,
rtl,
PackDependency,
dbrtl;
现在我只想在定义了条件符号CONDITION 时才具有此依赖关系。因此,我将 .dpk 文件手动更改为:
requires
vcl,
rtl,
{$IFDEF CONDITION}
PackDependency,
{$ENDIF}
dbrtl;
但这足够了吗?我担心 .dproj 文件。
我有两个像 Package1 这样的包,我想做上面的事情。其中一个在其 .dproj 文件中有以下行:
<DCCReference Include="PackDependency.dcp"/>
其他包的 .dproj 确实不包含这一行,即使该包也依赖于PackDependency。
这引发了一些问题:
- 是否可以
require基于条件符号的包? - 如果是,我必须对 .dproj 文件做些什么吗?如果是,如果文件的某些区域被 Delphi 修改,我会遇到麻烦吗?
- 为什么上面的
<DCCReference Include...>行包含在其中一个 .dproj 文件中而不包含在另一个文件中(即使两个包在它们的 .dpk 中都有依赖关系并且也在 Delphi 项目管理器中显示)? - 我怀疑从 Delphi 和使用 msbuild 从命令行构建时的行为不同。前者可能会查看 .dpk 文件 - 但后者会吗?
我的最终目标是使用 msbuild 从命令行构建。所以命令行和 IDE 之间的不同行为对我来说也是重要的信息。
【问题讨论】:
-
这似乎很容易测试...
-
我想避免“现在工作,以后休息”。但我现在正在测试。如果有明确的答案就好了。
标签: delphi build-automation delphi-2009