Versuch bitte mal etwas in dieser Art:
Delphi-Quellcode:
// Die Umgebungsvariabel Path um unser eigenes Suchverzeichnis erweitern.
function AddDllDirectoryToPath(ADirectory : String) : Boolean;
var
sPath : String;
begin
sPath := GetEnvironmentVariable('PATH');
if Pos(ADirectory,sPath) = 0 then sPath := Format('%s;%s',[ADirectory,sPath]);
SetEnvironmentVariable('PATH', PChar(sPath));
sPath := GetEnvironmentVariable('PATH');
// Sofern das Verzeichnis ADirectory noch nicht in der Pfadangabe enthalten war,
// sollte es nun an der ersten Stelle des Suchpfades stehen.
ShowMessage(sPath); // <-- das ShowMessage kann im Programmablauf natürlich verschwinden ;-)
Result := Pos(ADirectory,sPath) <> 0;
end;
const
csLibDir = 'C:\PfadZuDenLibs\';
begin
if not AddDllDirectoryToPath(csLibDir) then
begin
// Fehlerbehandlung, Programmabbruch ... oder ... oder ... oder ...
end;
end;
Diesen Teil bitte "irgendwo" vor dem ersten Laden von Packages ... im Programm einbauen.
Sinn: Eventuell werden die Packages ... nicht gefunden. Im Programmablauf werden
DLL's ... zuerst im Exe-Verzeichnis gesucht. Sind sie dort nicht zu finden, wird die Umgebungsvariabel Path "abgegrast", bis was gefunden wurde. Wird nix gefunden, gibt es eine Fehlermeldung (hoffentlich).
Wenn die Packages im Exe-Verzeichnis liegen, scheint diese Logik ja zu funktionieren. Es könnte sich beim Beschriebenen also um ein Problem bei der Suche nach Packages ... handeln.
Sollten über die PATH-Variabel jetzt zufällig noch ältere Versionen der Packages zu finden sein, könnte auch dies ein möglicher Grund für das beschriebene Problem sein. (Bitte vorsichtshalber mal überprüfen, nicht nur in Bezug auf Deine eigenen Sachen, sondern bei
Indy z. B. auch nach den Packages, die von den
Indy-Packages aufgerufen werden könnten.)
Und nein, das muss jetzt keine Lösung des Problemes sein, aber eventuell hilft es ja bei der weiteren Ursachenforschung.