自动构建和安装Delphi组件

4

所以,我的Delphi组件已经可用并且工作正常,除了一些细节需要处理外。我想创建一个安装程序(Inno setup),可以自动将我的组件安装到用户的Delphi/C++ Builder IDE中。我认为我必须使用Delphi命令行编译器,但是如何操作呢?

谢谢。


你是否提供组件源代码(我假设是这样的)?你的目标 Delphi 版本是哪些? - LaKraven
这将是我的第二个问题:我需要这个组件在任何地方(Delphi和C++ Builder)都能工作,无论它们的版本如何。我可能也需要提供源代码?没问题,但是否可能不提供源代码并实现此安装? - Tracer
是的,您可以提供预编译的 DCU 文件,但您需要为每个 Delphi 版本提供不同的集合,并且对于每个相应的 Delphi 版本,都需要提供发布和调试版本的集合。 - LaKraven
我也这么想……它太复杂了。好的,那我会提供源代码。下一步是什么? - Tracer
1
我原本打算建议您的InnoSetup向导检测安装了哪些Delphi版本,并针对每个版本的DPROJ文件(包含组件的包)使用MSBuild进行编译。这将生成一个.BPL文件,您可以通过注册表简单地将其安装到IDE中。 由于您的目标版本早于2006年,因此该建议现在已不足够! - LaKraven
那将是很棒的。限制到2006版本也不是问题。 - Tracer
2个回答

7

很不幸,Delphi IDE根本不支持自动化组件安装。在我看来,这是一个非常大的问题,因为组件架构在Delphi中非常重要。

您可以使用命令行(使用MSBuild或DCC)构建您的包,但无法将其安装到IDE中。要安装您的软件包,您应编写自己的安装程序,该程序构建软件包、复制已编译的文件并更新Windows注册表。请注意,没有官方文档说明如何编写此类安装程序,但您可以以Jedi(JVCL)安装程序代码为例。

还有第三方工具可自动化组件安装,例如'lazy builder',可能会对您感兴趣。


顺便提一下,Lazy Delphi Builder使用JCL的代码来读取Delphi设置、编译和安装组件。 - Aleksey Timohin

1

这并不太难,只是有些混乱。您需要为每个要定位的Delphi版本编译一个BPL,然后您的安装程序将此BPL放入您选择的文件夹中(通常是users、public等)。然后,该文件夹位置将被写入相关的Delphi已安装包节点下的注册表键。当您运行Delphi时,您的组件会出现,就好像您使用了手动安装包选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接