Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自动构建和安装Delphi组件_Delphi_Components_Vcl - Fatal编程技术网

自动构建和安装Delphi组件

自动构建和安装Delphi组件,delphi,components,vcl,Delphi,Components,Vcl,所以,我的Delphi组件是功能性的,可以正常工作,除了一些细节。我想创建一个安装程序(Inno安装程序),它会自动将我的组件安装到用户的Delphi/C++Builder IDE中。我想我必须使用delphi命令行编译器,但如何使用呢 谢谢。不幸的是,Delphi IDE根本不支持自动组件安装。在我看来,这是一个非常大的问题,因为组件架构在Delphi中非常重要 可以从命令行生成包(使用MSBuild或DCC),但不能将其安装到IDE。要安装软件包,您应该编写自己的安装程序来构建软件包、复制编

所以,我的Delphi组件是功能性的,可以正常工作,除了一些细节。我想创建一个安装程序(Inno安装程序),它会自动将我的组件安装到用户的Delphi/C++Builder IDE中。我想我必须使用delphi命令行编译器,但如何使用呢


谢谢。

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

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


还有一些第三方工具可以自动安装组件,例如“”,您可能对此感兴趣。

这不太难,只是比较混乱。您需要为每个要针对的Delphi版本编译一个BPL,然后安装程序将此BPL放入您选择的文件夹(通常是用户、公共等)中。然后,该文件夹位置将作为注册表项写入相关的Delphi Installed Packages节点下。Lo当您运行Delphi时,您的组件看起来就像您使用了手动安装软件包选项一样。

您是否为您的组件提供了源代码(我想是吧?)以及您的目标是什么版本的Delphi?这将是我的第二个问题:我需要此组件工作。。到处(Delphi和C++ Builder)不管它们的版本。我可能还需要提供源代码?没问题,但是否可以不提供源代码并完成此安装?是的,您可以提供预编译的DCU文件,但您必须为每个Delphi版本提供一个不同的集合,并在发布和调试(针对每个Delphi版本)中提供一个集合。我想是这样的。。。这是非常复杂的。好的,我将提供源代码。下一步是什么?我建议让InnoSetup向导检测安装了哪些版本的Delphi,并对该版本的DPROJ文件(对于包含组件的包)使用MSBuild进行编译。这将生成一个.BPL文件,您只需通过注册表将其安装到IDE中即可。由于您的目标版本早于2006年,该建议现在已经不充分了!顺便说一句,Lazy Delphi Builder使用JCL中的代码来读取Delphi设置、编译和安装组件。