首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用数据模式单元部署自定义bpl?

如何使用数据模式单元部署自定义bpl?
EN

Stack Overflow用户
提问于 2022-11-17 07:54:54
回答 1查看 45关注 0票数 0

我有一个小组项目:

  • PkagDemmo.exe(main application)
  • AppAddin.bpl(load/unload bpl并创建用于数据访问utilities)
  • Pakage1.bpl(Form1 bpl的表单utilities)
  • PkgData.bpl(DataModeule单元,并显示data)
  • Pakage2.bpl(Form2 bpl和显示数据) PakDemo.exe项目Options:
  • Packages/Runtime包/用运行时包链接= true
  • Packages/Runtime包/运行时包=真正的

在我开发的PC上,应用程序运行良好,但是将这5个文件移到我的笔记本上,运行PkageDemo.exe会出现错误: found: rise :FRADACCommonDriver270.Bpl,FireDACComnon270.Bpl,FireDACCommonODBC270.Bpl,vclFireDac270.Bpl.这些都是PkgData.bpl DataMoudles使用FireDacXXXX单元,DB单元需要动态bpls。我把那些bpls复制到我的笔记本上,但它仍然显示出一个错误。为什么应用程序找不到这些FireDacxxx.bpl,如何解决这个问题?//Delphi10.4.2 Win10

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-17 08:42:32

按应用程序查找文件的标准规则:

  1. 它试图在当前工作文件夹中查找(如果使用链接它是链接的“工作目录”字段,如果您在资源管理器-当前文件夹中通过双击运行)
  2. ,它试图通过解析"Path“环境变量中的字符串来查找文件。它是一个接一个的文件夹,由";“符号分割。

如果应用程序没有按照这些规则找到文件,您将得到错误消息。因此,为了解决您的问题,您可以将所有文件放在同一个文件夹中,或者修改“路径”变量,以添加所有bpls文件夹,或者使用文件的绝对路径(如果您在运行时手动加载它)。

它在你的DeveloperPC上工作,因为德尔菲在“路径”变量中添加了带有运行时bpls的文件夹。

后加:

关于"path“--它是一个系统环境变量,因此它取决于Windows版本如何打开它。如果您使用Widnows 10或11,只需转到设置,并在“查找框”中键入“环境”- windows将显示编辑窗口。但除非你找到所有必要的bpls,否则不会有帮助的。

主要的问题是,不仅要把您的应用程序和您的bpls直接使用的bpls,而且是FireDac bpls正在使用的bpls。

找到它们的最简单的方法--使用一些可以找到dll/exe/pbl依赖关系的程序。我使用“文件信息插件”的TotalCommander,但你可以谷歌一些其他程序为同样的行动。

其他方式更长,但不需要任何附加程序。尝试运行应用程序时,请参见错误消息,如“由于找不到KComponents.bpl而无法继续执行代码。”然后在Develop上找到这个"KComponents.bpl“(先看看"c:\Program (X86)\Embarcadero\Studio\21.0\Redist\ with 32”之类的东西),将应用程序的EXE文件复制到同一个文件夹中的笔记本上,然后尝试再次运行它。您将看到下一个缺少的BPL。以此类推。

下面是您编写的所有BPLs的依赖树:

代码语言:javascript
复制
FireDACCommonODBC270.bpl
    rtl270.bpl
    dbrtl270.bpl
        rtl270.bpl - duplicate
    FireDACCommon270.bpl
        xmlrtl270.bpl
        rtl270.bpl - duplicate
        dbrtl270.bpl - duplicate
    FireDACCommonDriver270.bpl
        rtl270.bpl - duplicate
        dbrtl270.bpl - duplicate
        FireDACCommon270.bpl - duplicate
        
vclFireDAC270.bpl
    rtl270.bpl
    dbrtl270.bpl
    vclwinx270.bpl
        vcl270.bpl
            rtl270.bpl - duplicate
        vclimg.270.bpl
            rtl270.bpl - duplicate
            vcl270.bpl - duplicate
        rtl270.bpl - duplicate
        bindengine270.bpl
            rtl270.bpl - duplicate
    FireDACCommon270.bpl - duplicate
    FireDAC270.bpl
        rtl270.bpl - duplicate
        dbrtl270.bpl - duplicate
        FireDACCommonDriver270.bpl - duplicate
        FireDACCommon270.bpl - duplicate
    vclx270.bpl
        rtl270.bpl - duplicate
        vcl270.bpl - duplicate
    vcldb270.bpl
        rtl270.bpl - duplicate
        vcl270.bpl - duplicate
        vclwinx270.bpl - duplicate
        dbrtl270.bpl - duplicate
        vclwinx270.bpl - duplicate
    vcl270.bpl - duplicate
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74471909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档