Runtime package linking: EXE starts locally but fails on production
0 reputation · 30 Jan 2022, 21:56 UTC
Runtime package linking: EXE starts locally but fails on production
The Delphi compiler option "Link with runtime packages" causes the executable to import symbols from BPL files at load time. On the developer workstation the binary launches normally because RAD Studio’s BPLs are present in the system path, yet the same build aborts on a clean production host with a missing‑DLL error before any application code runs.
When shipping, the decision is whether to bundle the exact set of required BPLs or to disable the option and link statically. The choice impacts deployment size, memory sharing, and patch granularity, but the exact list of BPLs needed for a given build configuration is not obvious from the project settings alone.
What are the most reliable methods to determine the minimal set of BPLs that must accompany a Delphi EXE built with runtime packages? How can I verify that a particular build configuration (e.g., Release) references the same packages as the one tested in Debug? What risks arise if I mix BPLs from different compiler versions on a single deployment machine?