Question

The software that I have found myself supporting, from time to time fails to run on different PC's. Generally they are new Win7 installs.

The error message is "this application failed to start because rtl90.bpl was not found..."

To rectify the problem I have out PC Support copy the rtl90.bpl file to the users system32 directory, however i would like to ensure this error no longer occurs.

I have googled and found the followling link rtl90.bpl problem

My question is this: The option to "Build with runtime packages" is already selected under the Project options for this program, and does not appear to make any difference to the users getting the problem.

Do I have to specifically Add the missing rtl90.bpl file to the project?

Please note that I know very little about delphi programming.

Was it helpful?

Solution

Since you are marked the option Build with runtime packages in your project, the final exe will require be deployed with some additional bpl files. To avoid that dependencies you must uncheck that option y build your project. Now your exe wil be bigger but without dependences.

OTHER TIPS

That package is a runtime package containing the VCL. You presumably also need to deploy rtl90.bpl for the RTL and possibly some others. By enabling runtime packages you are promising to deploy those packages where the executable can find them.

You have 3 main options:

  1. Deploy the packages to a location that is contained in the PATH variable. Usually this means modifying PATH. You should never write to the system directory. It is owned by the system and you should respect that.
  2. Deploy the packages to the same directory as the executable file.
  3. Disable runtime packages and therefore build a single self-contained executable. The RTL/VCL code will be statically linked into your executable.

Option 1 is poor in my view. Relying on the PATH variable and the ability to modify it is fragile. Option 2 works but seems rather pointless in comparison with option 3. You deploy more files and larger files when you choose 2, so why choose it.

In summary I recommend option 3. Statically link all RTL/VCL code into your executable.

The only situation where option 2 wins, in my view, is when you have multiple related executables that are all deployed to the same directory. In that situation sharing the RTL/VCL code can make sense.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top