gpt4 book ai didi

delphi - 安装软件包时出现无法加载软件包 %s 错误

转载 作者:行者123 更新时间:2023-12-03 15:21:58 24 4
gpt4 key购买 nike

我正在 Delphi 2007 上进行测试,我的小组项目由 2 个包组成。

enter image description here

PackageRun.bpl

它被标记为“仅运行时”,并包含一个名为“uMyTestRun.pas”的单元,其中定义了一个空的 TFrame 后代:

unit uMyTestRun;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TMyTest = class(TFrame)
private
{ Private declarations }
public
{ Public declarations }
end;

implementation

{$R *.dfm}

end.

PackageDes.bpl

它需要 PackageRun.bpl,它被标记为“仅设计时”,并包含一个名为“uMyTestDes.pas”的单元,我在其中编写了以下代码:

unit uMyTestDes;

interface

uses
Classes,
uMyTestRun;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('MyComponents', [TMyTest]);
end;

end.

两个包的输出目录都在库路径中(里面有bpl、dcp和dcu)。

<小时/>

尝试安装 PackageDes.bpl(组件、安装包...、添加...),出现以下错误:

Can't load package C:\<...>\PackageDes.bpl. Impossibile trovare il modulo specificato.

消息的最后一部分是我的操作系统语言,用英语来说应该是“找不到指定的模块”。 (我的操作系统是 Windows 10 Pro 64 位)。

PackageDes.bpl 与错误消息中显示的路径完全相同 (C:\<...>\PackageDes.bpl)。经过一些测试,我发现通过从 uMyTestDes.pas 单元中删除以下行,错误消失了:

RegisterComponents('MyComponents', [TMyTest]);

我的代码/项目/环境有问题吗?

最佳答案

http://SysInternals.com 运行进程监视器并设置过滤器仅拦截 Delphi IDE 进程的文件操作(工具栏最右边的按钮)(检查任务管理器或快捷方式属性中的进程名称(对于 Delphi XE2 为 bds.exe),然后添加类似于 Include/Process Name 的过滤器/以/bds.exe 结尾)。

然后清除PM中的日志,切换到Delphi并尝试加载包,然后一旦弹出错误就切换回PM并停止捕获事件。尝试尽可能快地完成此操作,例如,不要浪费时间关闭错误框。

现在,您将获得 Delphi 加载您的包时的文件 I/O 事件的踪迹(以及一些其他后台事件噪音 - 速度越快,噪音就越少)。在该跟踪中查找所有错误并查看 Delphi 尝试查找的位置和包。

您还可以尝试 Microsoft Dependency Walker 或类似工具来检查您的设计时 BPL 是否具有可解析的所有 DLL 依赖关系树。就我个人而言,我通常使用 Unreal/Total Commander 和 FileInfo 插件或 ntCore CFF Explorer。

关于delphi - 安装软件包时出现无法加载软件包 %s 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39726735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com