安装组件的最佳方式是啥?

Posted

技术标签:

【中文标题】安装组件的最佳方式是啥?【英文标题】:What is the best way to install components?安装组件的最佳方式是什么? 【发布时间】:2012-11-27 06:37:48 【问题描述】:

在 Delphi XE3 下安装组件是一场噩梦。

首先我需要将源文件添加到

工具 -> 选项 ->

那我需要找一个正常的包编译一下

最后我需要找到设计时包并安装它。

这非常乏味且容易出错。有没有更好的方法来安装组件?

我找到了Delphi Package Installer。不幸的是,它不支持 Delphi XE3 或更高版本。

我听说有类似的东西会产生 exe 安装自己的包(类似于 Inno Setup),但我找不到这样的东西。

【问题讨论】:

请编辑您的问题以删除脏话。这是一个专业网站,有些人觉得这种语言令人反感。 我认为您发错了网站。您正在寻找rants.stackexchange.com @Tom:不,不是。这是自 Delphi 6 以来存在的完全相同的过程(我在回答中说过)。生成 .exes 的产品是 Mustang Peak Component Installer(为安装 VirtualTreeView 而开发),它不再可用。与普通安装相比,它需要更多的设置工作,因为它是为在许多机器上安装(组件库的分发)而设计的,而不是用于安装您可能拥有的一组包文件。 @Tom:可能有,但那是 组件供应商 要做的(正如我在这里说过三遍),而不仅仅是安装你在某处找到的组件库并想安装。您必须专门为您安装的所有内容编写 .ISS 脚本;有(而且不可能有)一个通用的“安装一堆组件”脚本。如果您想要构建安装程序,请联系组件供应商/作者 然后随意编写一个完全符合您要求的程序。 :-) 你确实有一个 IDE 和编译器。 【参考方案1】:

没有。上述步骤是必需的。

首先,将文件路径添加到Tools->Options->Delphi Options->Library Path 是为了让编译器知道在哪里可以找到文件来编译它们。 (实际上,这不是必需的 - 您可以通过确保 .dpk 文件与 .pas 文件位于同一文件夹中来消除此步骤,并且所有 .pas 文件名都列在 .dpk 的 includes 部分中. 如果 .pas 文件位于不同的位置,您需要使用 .dpk 中的相对路径(例如,MyComponents in '..\Source\MyComponents.pas')或将 .pas 文件的位置添加到 Project->Options->Delphi Compiler->Search Path。)

下一步(查找“正常包”)是为了构建运行时包。这是必需的,因为设计时包(下一步)需要该包中的代码才能在表单设计器中运行。当您决定使用运行时包构建应用程序时,如果您使用第三方组件并希望为其分发运行时包,也需要它。

需要单独的设计时包(第三步),因为设计时代码只能在设计时使用;如果应用程序是使用运行时包构建的,并且第 2 步中构建的包就是其中之一,则没有任何东西可以与应用程序一起分发。

这一直是从 Delphi 3 左右开始安装组件的方式,并且在 Delphi 5 中开始建议将设计时代码分离到自己的包中,并在 Delphi 6 中强制执行(当他们重新定位大部分 IDE 设计时时)支持到他们自己单独的包中,并停止为他们分发源代码)。

确实没有其他选择,除非供应商为您提供预构建设计时和运行时包,或者提供将执行上述所有步骤的安装程序。 (大多数不这样做。)但是如果您更新您的 Delphi 版本,您仍然必须执行上述步骤。

【讨论】:

修改工具->选项->Delphi 选项->如果 .dpk 文件列出了每个文件,则库路径可以是可选的。在我看来,这比依赖全局搜索路径更好。 就像你说的,如果你自己制作一个包或者你下载了一个没有包的组件,这只是一个“问题”。通常,下载或购买的组件将具有完整的 dpk 文件,其中包括所有文件(因此您无需更改库路径),甚至还有一个安装程序。 +1 完全回答这个问题。 David 和 GolezTroi:两者都很好。不过,我决定只针对海报的名单而不是写一本书;它已经足够长了。 :-) 如果您愿意,请随时编辑该段落。 全局 Tools->Options->Delphi Options->Library Path 路径不是为源代码设计的。请不要在全局库路径中设置源代码路径。 @David:是的,你会期待的。你并不总是明白。 :-)【参考方案2】:

我想说安装组件的最佳方式是使用您的构建管理器(例如 FinalBuilder)并将每个组件添加到一个管理器项目文件中,该文件设置必要的路径、构建 DPK 文件并“安装”通过在 IDE 中创建一个注册表项来添加组件。这样,您就有了一个文档化的程序,可以让您可靠地设置或修复您完整的、经过测试的 Delphi 开发环境。当组件更新和测试后,您可以简单地重新运行项目。调整现有项目以处理新的 Delphi 版本也很容易。

供应商提供的安装程序的一大缺点是,我看到的所有安装程序都只是在更新时覆盖了以前的版本。我更喜欢自己控制安装,以便将以前的组件源版本存档并可供比较,以防测试发现升级存在问题。 “一键安装”听起来不错,直到一个小组件升级突然导致您的应用程序停止工作。

【讨论】:

也许我很幸运,但组件升级从来没有遇到过任何问题。如果组件没问题,这样的一键式安装程序仍然可以节省大量时间。【参考方案3】:

内置组件安装程序呢?它是 Delphi XE、XE2 和 XE3 的一部分,可以在 here 找到描述(我写的)。它甚至会在 C++Builder 中安装组件。您可以安装到现有包中,也可以安装到它将为您创建的新包中。

【讨论】:

不错的文章,但是当我有一堆 DPK 时,我仍然需要手动安装它们——一个一个。 问题是关于组件的。包确实只能一个一个地安装,AFAIK。嗯...我可以尝试扩展组件安装程序来安装多个包。【参考方案4】:

看看“Lazy Delphi Builder”。它的创建是为了一次简化许多组件的构建/安装。它自动解决包依赖关系。免费使用。 Link to some old tutorial

【讨论】:

以上是关于安装组件的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用 XCode 将同一 iOS 应用程序的多个版本安装到 iPhone 的最佳方式是啥?

部署 JavaFX 应用程序、创建 JAR 和自包含应用程序以及本机安装程序的最佳方式是啥

基于其他更小的基础组件构建组件的最佳方式是啥?

使用 Vue js 发布具有多个组件的表单的最佳方式是啥

如果 HTML 导入已失效/已弃用,那么导入 Web 组件(X-Tag)模板的最佳方式是啥?

与 MySQL 服务器通信的最佳方式是啥?