delphiruntime-packages

When to compile apps that use a changed runtime package


I'm using Delphi XE2. I have a large project that has an application (EXE) that uses runtime packages, a Core.bpl custom package (used by the EXE) and several other custom Plugin.bpl packages that also use the Core.bpl package (as a runtime package).

I have noticed that I can make minor changes to the Core.bpl without recompiling the EXE or custom Plugin.bpl packages. But more significant changes (adding a lot of code or removing a lot of code from an existing method, or adding new methods) causes problems. Sometimes there are inconsistent access violations, sometimes there are errors about missing entry points in the Core.bpl package, etc.

I want to minimize the number of files that are compiled so that our users have fewer files to update with each release. However, I don't want them to see errors like I sometimes see.

Should I recompile all the modules and the EXE that uses Core.bpl each time it changes, or are there some general rules to follow so that everything only gets compiled for certain types of changes to the Core.bpl?


Solution

  • Every time you change the interface section of a unit in a BPL you have to recompile the depended parts (EXE or other BPL).