ICU dlls deployed with fb 3 embeded is:
But, FB tries to load
And it tries to load it from all folders defined in PATH.
What was happen if some third-party tool will write to PATH some folder with some of this ICU-dlls?
May it be that some of this third-party icu will be somehow incompatibe with my database?
1.user installs tool from SomeCompany, which bundled with custom-builded icuuc519.* (SomeCompany builds they own icu-dlls, as FB does). And this program adds self to PATH (they really need that)
2.user intalls our program "A" with FB embedded
3.user successfully works with our program "A" (using SomeCompany's icuuc519.*, as side-effect (which is not predicted by us, as developers of "A"))
4.user uninstalls tool from SomeCompany
5.user now can't work with our program A, because now FB loads icuuc52.*, and it is incompatible with custom-build icuuc519.dll from SomeCompany.
May we be shure, that SomeCompany build their icuuc519.* without errors? :)
Loading ICU from PATH is designed behavior, making it possible to easier replace ICU with new better version (I do not accept an argument that someone installed bad build of ICU on a box, with same probability bad version of C runtime may be installed). But it's really good idea to start with our own 5.2 version.
our users prepared to handle this?: http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1119708&msg=16674233
I think that in windows by default must be used icu from fb root. And only by some key in config we may allow to load something from global path. If Admin or program developer really want to handle things like loading icu from unknown place with unpredictable results, then he just say it in config and all be happy.