【问题标题】:Delphi - How to build a package for distributionDelphi - 如何构建分发包
【发布时间】:2017-08-10 02:30:27
【问题描述】:

使用 Embarcadero RAD Studio XE7,我编写了一个包含 VCL 组件(它是 TGraphic 后代)的运行时包。现在我想分发这个组件,但只有编译好的包没有他的源代码。我不能将它包含在分发中,因为我为一家想要出售它并控制其来源的公司编写了这个包,因此在这种情况下分发源代码不是一种选择。

组件包依赖于我也写的另外两个包。所有这些包都是运行时的,但是注册了一个图形过滤器。安装包后,这个过滤器允许我从我的开发计算机上的几个原生 VCL 组件(如 TImage)中打开一种新的图像文件。此行为非常重要,我希望将其保留在目标 IDE 上。

理想情况下,我希望我的包安装在 XE 和 10.2 Berlin 之间的所有 RAD Studio 平台上。但是,我最近尝试在我的开发计算机上编译我的包并在另一台安装了 RAD Studio XE4 的计算机上手动部署它。结果令人难以置信:

  • 尝试使用 Component->Install packages... 安装 .bpl 文件失败,出现“找不到指定的模块”错误。使用 Dependency Walker 工具打开 .bpl 文件时,我注意到 RTL210.bpl 等几个依赖项丢失了
  • 我还在某处读到,只能这样安装设计时包,准确吗?
  • 将我的一个包的所有文件(.bpl、.lib、.hpp、...)手动放入 XE4 通用目录中,我能够成功编译测试项目。但是我的包中的几个功能不可用(导致尝试使用它们时无法解析的外部)

虽然我过去有过一些关于软件和包分发的经验,但我必须承认我完全不知道如何构建这样的包进行部署。在我过去的所有场景中,我总是分发包项目和源代码,并让用户将它们安装在自己的 IDE 上。

过去几天我搜索了有关此的信息,但一无所获。因此,如果有人可以解释如何实现这样的包,或者可以将我指向描述该过程的文档或网站,或者最终给出可以完成这项工作的工具的名称,我将非常感谢他。

问候

【问题讨论】:

  • 您不能将使用 XE7 编译的包部署到 XE4 IDE 中。您必须为使用该特定 Delphi 版本编译的每个 IDE 部署一个单独的包。菲XE4 包必须使用 XE4 编译,这将使其依赖于 rtl180.bpl。
  • 为什么我被否决了?
  • 我不知道。在这里投票是完全匿名的。

标签: delphi deployment ide package target


【解决方案1】:

如果您不想分发源文件,则需要提供 .dcu 和 bpl 文件。正如 Uwe 所说,每个 Delphi 发行版都需要不同的包。

我过去所做的是创建一个安装程序来构建和注册包。你可以在这里找到完整的描述:

http://www.kouraklis.com/2016/10/build-and-install-packages-in-delphi-ide-using-innosetup/

我认为您可以修改脚本以跳过对 MSBuild 的调用。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2013-06-30
    • 2010-10-14
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 2011-07-14
    相关资源
    最近更新 更多