【问题标题】:VCL40.bpl missing when installing package in Delphi XE3在 Delphi XE3 中安装软件包时缺少 VCL40.bpl
【发布时间】:2015-03-22 20:43:22
【问题描述】:

我想在 Delphi XE3 中安装一个旧包。

我已经进行了所需的修改并且包的构建是好的,但是当我要求安装它时,我有错误:VCL40.pbl 丢失。

如何解决这个问题并摆脱这个错误?

谢谢!

【问题讨论】:

  • 这个包是为什么版本设计的?
  • @BlueMan 这是您最不关心的问题。从 ANSI D4 移植到 Unicode XE3 是一项艰巨的任务。

标签: delphi installation package


【解决方案1】:

打开您的包裹.dpk 文件。你会在requires 子句下找到vcl40

requires
  vcl40;

vcl40 重命名为 vcl 以修复此错误。

Delphi 软件包是特定于 Delphi 版本的。每个 Delphi 版本从相同的代码创建不同的编译包 (.bpl),并且编译包不能在不同的 Delphi 版本之间共享。

所有 Delphi RTL/VCL/FMX 软件包都有后缀来标记它们所针对的 Delphi 版本,并且当您的系统上安装了多个用于不同版本的软件包时,可以避免冲突。在 Delphi 4 中,当您的包使用其他包时,该版本号包含在您的 requires 子句中。这就是为什么你有vcl40。在后来的版本(Delphi 7 或 6)中,引入了包后缀,删除了需要在 requires 子句中写入版本号,仍然允许编译的包对于不同的 Delphi 版本具有不同的编号。

这就是为什么在 Delphi XE3 中使用 vcl 而不是 vcl170

建议的做法是,您还为自己的包遵循后缀版本编号以避免冲突。为此,请转到 Package Options -> Description 并将 LIB 后缀设置为所需的版本。它可以设置为您想要的任何内容,但最好使用与 Delphi 包相同的编号方案,对于 XE3,它是 170

当您编译带有后缀集的包时,生成的.bpl 将被命名为MyPackageName170.bpl

【讨论】:

  • 我已经这样做了。但是当我编译包时,没有错误,但没有 .BPL 的生成:这是旧的 .bpl
  • 我添加了关于包编号方案的附加说明。当您构建和安装您的包时,您的新 .bpl 文件将被创建。你可能只是找不到它。如果您在安装过程中没有更改文件夹默认文件夹是C:\Users\Public\Documents\RAD Studio\10.0\Bpl
【解决方案2】:

搜索您尝试安装的 BPL 的所有副本,包括运行时和设计,然后将其删除。我在尝试在 XE6 上安装软件包时遇到了类似的问题,一直想要 rtl170.bpl(它是一个 XE3 bpl)。原来在 c:\Windows\SysWOw65 中有一个旧版本的运行时 BPL。一旦我删除该副本安装就可以了。

【讨论】:

    猜你喜欢
    • 2015-09-10
    • 2018-11-01
    • 1970-01-01
    • 2015-01-09
    • 2020-03-17
    • 2014-10-26
    • 2015-02-19
    • 2019-09-10
    • 1970-01-01
    相关资源
    最近更新 更多