package madExcept_.bpl/madBasic_.bpl/etc cannot be found
Posted: Wed Jun 15, 2011 7:13 am
this is D2010. not sure if it applies to other versions. and it's not a bugreport (not for madCollection, at least)
short problem: mad* packages required by other installed packages will result in those packages cannot be found error on IDE startup.
As I've been able to dig into it, I saw that the design time packages are loaded "first" (as in before other needed stuff, whatever that is, probably environment options; and during add-on loading) and from using sysinternals process monitor I noticed that there are only 2 sets of path that are being searched for, for required packages (maybe the first set is composed of multiple sets, I have no idea, just guessing, but it's a short set):
- some internal "delphi" paths (which include the %BDSCOMMON%\BPL and %WINDIR% and %SYSTEM32% and alike (I've done this research a few weeks ago and I'm quoting from memory so don't be surprised if I get some of these paths wrong)
- the actual %PATH% system variable
now, for someone who knows the internals of the delphi IDE and what dirs it uses and so on, this probably is not a complete and fully correct information, but it's what I noticed and deduced.
The thing is that the IDE library path is NOT used. Thus, mad* packages are not found (actually, any 3rd party package that is required by a design time package installed and enabled in the IDE which stores its BPLs in some other location; which makes this post not a bugreport against madCollection)
now, the key issue here is that I've set up my packages in a way that they require mad* packages (no way around this, unfortunately). And I *think* I've done this a little while back, in D2009 (which I used last year). I know the packages were setup up like this during D2009 dev, and the mad* dependency was added a bit later, but I don't remember if that later was during D2009 or after I switched to D2010 (and I don't have the time resources to setup a vm with d2009 and test if it works there or not).
what I am interested in, and asking you since I figure you know better, is where are these paths (used during package loading) read from? Is this some "raw" environment which later gets updated with EnvOptions.proj? If so, where is it read from? I have a "hack" batch file that loads my project group into the IDE, setting %PATH% prior to that to include tha mad* packages, but that's just a hack. I'd like to get a real solution to this
Thanks.
short problem: mad* packages required by other installed packages will result in those packages cannot be found error on IDE startup.
As I've been able to dig into it, I saw that the design time packages are loaded "first" (as in before other needed stuff, whatever that is, probably environment options; and during add-on loading) and from using sysinternals process monitor I noticed that there are only 2 sets of path that are being searched for, for required packages (maybe the first set is composed of multiple sets, I have no idea, just guessing, but it's a short set):
- some internal "delphi" paths (which include the %BDSCOMMON%\BPL and %WINDIR% and %SYSTEM32% and alike (I've done this research a few weeks ago and I'm quoting from memory so don't be surprised if I get some of these paths wrong)
- the actual %PATH% system variable
now, for someone who knows the internals of the delphi IDE and what dirs it uses and so on, this probably is not a complete and fully correct information, but it's what I noticed and deduced.
The thing is that the IDE library path is NOT used. Thus, mad* packages are not found (actually, any 3rd party package that is required by a design time package installed and enabled in the IDE which stores its BPLs in some other location; which makes this post not a bugreport against madCollection)
now, the key issue here is that I've set up my packages in a way that they require mad* packages (no way around this, unfortunately). And I *think* I've done this a little while back, in D2009 (which I used last year). I know the packages were setup up like this during D2009 dev, and the mad* dependency was added a bit later, but I don't remember if that later was during D2009 or after I switched to D2010 (and I don't have the time resources to setup a vm with d2009 and test if it works there or not).
what I am interested in, and asking you since I figure you know better, is where are these paths (used during package loading) read from? Is this some "raw" environment which later gets updated with EnvOptions.proj? If so, where is it read from? I have a "hack" batch file that loads my project group into the IDE, setting %PATH% prior to that to include tha mad* packages, but that's just a hack. I'd like to get a real solution to this
Thanks.