运行时组件包需要进一步重构

时间:2012-02-26 00:29:42

标签: delphi custom-controls package delphi-xe2

我在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.2DCLJDComponents.160.bpl.2


更新

我设法安装了它,请在下面看到我的答案。

1 个答案:

答案 0 :(得分:1)

完成以下步骤后,我成功地重新构建了它:

  • 卸载软件包
  • 删除了所有DCU,包和任何已编译的内容
  • 重新启动电脑
  • 重建一切

因此,问题的根源仍然是未知的,但很可能在编译文件(DCU或软件包)的某处,它仍然在更改之前引用这个旧类型名称。当编译器碰到这个时,它感到困惑并且告诉我必须包含这个其他包,这实际上是相同的包。