使用运行时包构建。需要哪些 BPL?

Building with runtime packages. Which BPLs are needed?

我想用'Link with runtime packages'编译我的程序。
它告诉我,我需要一些与数据库相关的包。但我不在我的程序中使用 DB。

如何确定需要哪些 BPL?
有某种依赖项查看器?

我希望有更多 sophisticated/user-friendly 依赖项查看器可用,但您可以使用 Delphi 附带的 TDump.Exe 实用程序来执行此操作。例如。来自包含文件夹

中的 CMD 行
tdump dbgrids2.bpl > dump.txt & notepad dump.txt

然后在结果的导入部分搜索条目。

我怎么'solved'问题:

Link与运行时间包:
在 'Project Options' 中,我将所有 BPI 放在 'Packages->Runtime packages->Runtime package import libraries' 中。 BCB 只会 link 实际需要的 PBL。
BPI 还必须添加到项目中(只需将其拖放到 ProjectManager 中即可)。

分布:
当您在窗体上放置一个位于不同 BPL 上的新控件时,您还需要将该 BPL 添加到您的分发包中。如果您忘记分发 BPL,程序将崩溃并烧毁。所以,测试很容易。只是 运行 应用程序。

依赖查看器
作为依赖项查看器,我使用 'Project info' 但这是有限的。 Process Explorer 更好。

就是这样。我做了一个测试,效果很好。
Link: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Loading_Packages_in_an_Application

如果您使用 GExperts(RAD Studio IDE 专家),另一个好工具是此工具中包含的 "PE information"。在 IDE 中,您可以获得 EXE/BPL/DLL 的依赖项(BPL 和 DLL)。以及关于必要的 pachages 的其他信息。

如果你在这个工具上select和EXE,你可以得到这样的结果: