我刚刚升级到Delphi XE7。现在,在XE中完美编译的软件包不再能够编译。
我有一个需要关闭隐式构建的A软件包,依赖于B软件包。首先,我编译并安装了A软件包。然后,我尝试编译B软件包,但编译器报错:
[dcc32 Fatal Error] A.dpk(39): E2225 Never-build package 'A' must be recompiled. [dcc32 Fatal Error] B.dpk(34): E2202 Required package 'A' not found.
显然,编译器找到了A软件包,因为它知道其内容(知道隐式构建已关闭)。同时,我已经将A软件包的路径添加到“库路径”中。
如果我从A软件包中删除ImplicitBuild指令,编译器只会说:
'Required package 'A' not found.' Process Monitor显示了一个有趣的条目:
我有一个需要关闭隐式构建的A软件包,依赖于B软件包。首先,我编译并安装了A软件包。然后,我尝试编译B软件包,但编译器报错:
[dcc32 Fatal Error] A.dpk(39): E2225 Never-build package 'A' must be recompiled. [dcc32 Fatal Error] B.dpk(34): E2202 Required package 'A' not found.
显然,编译器找到了A软件包,因为它知道其内容(知道隐式构建已关闭)。同时,我已经将A软件包的路径添加到“库路径”中。
如果我从A软件包中删除ImplicitBuild指令,编译器只会说:
'Required package 'A' not found.' Process Monitor显示了一个有趣的条目:
C:\Users\trei\Documents\Embarcadero\Studio\15.0\Imports\A.dcp <-- 路径未找到
C:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl\A.bpl <-- 共享冲突
'C:\Users\trei\Documents\Embarcadero\Studio\' 中没有 '15.0' 文件夹。
- 为什么找不到 A.dpk 文件?
- 为什么 Delphi 还想重新编译 A 包?
- 为什么 Delphi 在“Imports”文件夹中搜索 DCP 文件?DCP 存储在 'c:\Users\Public\Documents\Embarcadero\Studio\15.0\Dcp\A.dcp'
有趣的事实:
与此消息相关的一个错误(错误号#109584)已经在XE4中标记为已修复。
http://qc.embarcadero.com/wc/qcmain.aspx?d=109584
回归?