我在Delphi XE2的split runtime / designtime包中有一组组件。我已经有很长一段时间了,没有像我现在拥有的那样的问题。我添加了一个名为TJDWebcam
的新基本控件。一切都很好,直到我决定将类型名称更改为TJDWebcamView
。我在主要的源代码单元中进行了查找/替换,并在设计时包的注册单元中进行了一些其他更改。
问题是,现在当我构建运行时包时,我收到一条消息,说它需要它自己(它需要一个包JDComponents
,它是完全相同的包)。我已经卸载了软件包,并尝试重新构建,但同样的错误。
以下是我收到的具体信息......
Add JDComponents.
JDComponents contains implicit unit(s) uPickFolder, JDCommon,
JD.VSample, JD.VFrames, NativeJpg.
......并且包装中的每个单元都可以在那里。直到我更改了这个控件的类型名称并重新编译后,问题才开始。
现在,如果我忽略该消息并点击“取消”,一切似乎安装得很好,尽管警告它“可能会导致错误”。
出于什么原因可能会这样做?以及如何修复它?我不想发布要调试的整个组件库。
PS - 我的库使用了delphi版本后缀(XE2为160)和我自己的版本后缀(2),所以包名实际上是JDComponents.160.bpl.2
和DCLJDComponents.160.bpl.2
。
更新
我设法安装了它,请在下面看到我的答案。
答案 0 :(得分:1)
完成以下步骤后,我成功地重新构建了它:
因此,问题的根源仍然是未知的,但很可能在编译文件(DCU或软件包)的某处,它仍然在更改之前引用这个旧类型名称。当编译器碰到这个时,它感到困惑并且告诉我必须包含这个其他包,这实际上是相同的包。