找不到rtl90.bpl,如何将它包含在我的Delphi 2005 win 32bit应用程序中?

时间:2012-04-16 04:42:25

标签: delphi delphi-2005

我发现自己支持的软件不时无法在不同的PC上运行。通常它们是新的Win7安装。

错误消息是“此应用程序无法启动,因为找不到rtl90.bpl ...”

要解决我的问题,我支持PC支持将rtl90.bpl文件复制到用户system32目录,但是我想确保不再出现此错误。

我使用Google搜索并找到了以下链接rtl90.bpl problem

我的问题是: 已在此程序的“项目”选项下选择“使用运行时包构建”选项,并且似乎对遇到问题的用户没有任何影响。

我是否必须专门将缺少的rtl90.bpl文件添加到项目中?

请注意,我对delphi编程知之甚少。

2 个答案:

答案 0 :(得分:4)

由于您在项目中标记了选项Build with runtime packages,因此最终的exe将需要部署一些额外的bpl文件。要避免这种依赖关系,您必须取消选中该选项以构建项目。现在你的exe会更大但没有依赖。

答案 1 :(得分:3)

该包是包含VCL的运行时包。您可能还需要为RTL部署rtl90.bpl,可能还需要部署其他一些。通过启用运行时包,您承诺在可执行文件可以找到它们的位置部署这些包。

您有3个主要选项:

  1. 将软件包部署到PATH变量中包含的位置。通常这意味着修改PATH。您永远不应该写入系统目录。它归系统所有,你应该尊重它。
  2. 将软件包部署到与可执行文件相同的目录中。
  3. 禁用运行时包,因此构建一个自包含的可执行文件。 RTL / VCL代码将静态链接到您的可执行文件中。
  4. 我认为选项1很差。依赖PATH变量和修改它的能力是脆弱的。选项2有效但与选项3相比似乎没有意义。当您选择2时,您可以部署更多文件和更大的文件,所以为什么选择它。

    总之,我建议选项3.将所有RTL / VCL代码静态链接到可执行文件中。

    在我看来,选项2获胜的唯一情况是,当您有多个相关的可执行文件全部部署到同一目录时。在这种情况下,共享RTL / VCL代码是有意义的。