Delphi-如何构建分发包

Delphi-如何构建分发包,delphi,deployment,ide,package,target,Delphi,Deployment,Ide,Package,Target,使用Embarcadero RAD Studio XE7,我编写了一个包含VCL组件的运行时包(它是TGraphic的后代)。现在我想发布这个组件,但只发布编译后的包,而不发布源代码。我不能将它包含在发行版中,因为我为一家公司编写了这个包,该公司希望出售它,并保持对其源代码的控制,因此在这种情况下,发行源代码不是一种选择 组件包依赖于我还编写的另外两个包。所有这些包都是运行时的,但是注册了图形过滤器。安装软件包后,此过滤器允许我在开发计算机上从几个本机VCL组件(如TImage)打开一种新的图像

使用Embarcadero RAD Studio XE7,我编写了一个包含VCL组件的运行时包(它是TGraphic的后代)。现在我想发布这个组件,但只发布编译后的包,而不发布源代码。我不能将它包含在发行版中,因为我为一家公司编写了这个包,该公司希望出售它,并保持对其源代码的控制,因此在这种情况下,发行源代码不是一种选择

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

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

  • 正在尝试使用组件->安装程序包安装.bpl文件。。。失败,出现“找不到指定的模块”错误。使用Dependency Walker工具打开.bpl文件时,我注意到缺少几个依赖项,如RTL210.bpl
  • 我还读到,只有设计时软件包可以这样安装,这是准确的吗
  • 将其中一个包的所有文件(.bpl、.lib、.hpp、…)手动放入XE4公共目录中,我能够成功地编译一个测试项目。但是,我的软件包中有几个函数不可用(导致在尝试使用它们时出现无法解析的外部错误)
尽管我在软件和包分发方面有过一些经验,但我必须承认,我完全不知道如何构建这样的包进行部署。在我过去的所有场景中,我总是分发包项目和源代码,并让用户在自己的IDE上安装它们

在过去的几天里,我搜索了有关这方面的信息,但什么也没找到。因此,如果有人能解释如何实现这样一个包,或者能给我指一个描述过程的文档或网站,或者最终给出一个可以完成这项工作的工具的名称,我将非常感谢他


关于

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

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

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


希望这有帮助。

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