XE7 link 运行时包问题

XE7 link runtime package issue

我正在将我的代码从 Delphi 2007 移至 XE7。我的程序使用后期绑定包的方式。所以我用 "link with runtime packages" 选项编译我的应用程序。这种方式我在2007上用了很长时间。

但在 XE7 中,相同的包结构,原因:

"Unit X was compiled with different version of Y.Txyz" 错误信息。

我的包裹中的 X 单元。 Y 单元也在库包中。关系似乎还可以。为什么XE7会报这个错? 我尝试了以下方法:

编译器通过了一些错误,但在其他地方重复“..用不同版本编译..”类型错误..

这个问题我不是很清楚。 XE7的逻辑有变化吗? 最好的问候

我专注于这个问题,我意识到 XE7 与 Delphi2007 的一些差异。

  • 编译器搜索 *.dcu 文件。如果以某种方式生成了多个版本的 *.dcu 文件,则其中一个包可能会产生 "unit compiled with different version" 错误。

  • 如果源包声明为"Rebuild as Needed",当使用源包编译其他包时,重新编译单元并产生新的dcu文件。所以,相反,检查 "Explicit Rebuild".

  • 我为所有包创建了公共 dcu 路径并在 "unit output directory" 中声明。