包的BPL转到错误的包输出目录

时间:2011-03-01 13:31:37

标签: delphi packages delphi-xe

我有一个包含多个包的项目组,其中一些包需要在同一项目组中的其他包。这些包并不都具有相同的包输出目录集。这就是问题开始的地方。根据我构建BPL的包,需要花一些时间到一个目录,另一次到另一个目录。

我试着简化发生的事情。假设我们有两个包PackLibPackDependentPackDependent在“需求”列表中包含PackLibPackLib的“包输出目录”是“C:\ PackLib”,PackDependent的目录是“C:\ PackDependent”。问题出在这里:当我构建PackLib然后bpl转到“C:\ PackLib” - 这就是我想要的。但是当我构建PackDependent时,也构建了PackLib(这没关系),但这次PackLib.bpl转到“C:\ PackDependent”(预期:“C:\ PackLib”)!

在我的上下文中,这会导致各种奇怪的行为,因为BPL会不断生成到不同的目录,具体取决于我构建的包。

我错过了我需要配置的东西吗?我希望我的包总是去配置的“包输出目录”!

1 个答案:

答案 0 :(得分:6)

可能发生的情况是,您的依赖包是由于另一个包而隐式构建的。当发生这种情况时,最外层程序包的编译器选项将用于所有正在构建的程序包。你可以做的是通过在每个包dpk文件中设置{$ IMPLICITBUILD OFF}指令来切换到始终显式构建包。只要您从依赖树的顶部显式构建所有包,就不应该遇到错误或将包放在错误的位置。