I work on a system in Delphi XE that has code broken out into about 20 BPLs, about 10 of which are design-time packages. I have multiple versions of the system in various states of development at any given time. There is a file folder structure for each version. When I need to switch from one working on one version to another, I need to switch the BPLs that are installed in Delphi from one folder to the other.
I do this fairly often so I tried to create a procedure to make this switch as quickly as possible, which works fine most of the time. In Registry Editor, I delete my BPLs from Delphi's Known Packages and then I run a .reg file that adds the entries for the new folder. Then I edit the Windows Path environment variable to point to the new folder. Usually, when I then restart Delphi I will have the correct packages installed in the IDE.
But sometimes it gets into a state and I get this:
"The program can't start because General90.bpl is missing from your computer."
Now I know without a doubt that file is NOT missing from my computer. And I know it is on my path. This is a base package required by all the others. I could understand getting this error if other packages are trying to install and this one isn't found. But this file is exactly where it's supposed to be, and it always is.
I can go back to Registry Editor, delete my BPL entries and restart Delphi. If I try Component -> Install Packages and add the BPLs, often this works, but just as often I get the same "can't find the BPL" error.
At this point I will open a .groupproj file that I have containing all the packages, right-click and install each of the design-time packages in Project Manager one-by-one. This will work 99% of the time. After that I can close Delphi and reopen it over and over without any problems. Until the next time I need to switch folders.
Can anyone tell me what installing the packages one-by-one in the Project Manager does that adding the entries directly to the registry in Known Packages does not do?
/r <regkey>
command line switch to specify which configuration to use. Also, try using SysInternals Process Monitor to see where exactly the IDE is looking for the BPLs when the error occurs. – Remy Lebeau