Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Package Installation schlägt fehl

  Alt 14. Apr 2021, 14:43
Wenn du ein Package in einen Ort kompilierst, der nicht im Windows PATH enthalten ist, wird diese BPL beim Laden der IDE nicht gefunden. Man muss also dafür sorgen, dass der Output der BPL beim Kompilieren ein Ort ist, der im PATH steht. Standadmässig legt die installation einen solchen Pfad im PATH ab, den man dann nutzen kann, aber ich würde da lieber einen eigenen Pfad definieren, der nur die korrekt benannten BPL's (Dateiname enthält die Delphi Version) enthält und dieser im Paths angeben. Die Delphi Installation macht leider per Default für jede neue Delphi Version einen neuen eigenen Verzeichnis, was dann irgend wann zu einer zu langen PATH Variable in Windows führt und spätestens ab da ist das was die IDE da macht leider Blödsinn.

Ich rate dir dazu 2 Verzeichnisse zu erstellne, die möglichst kurz sind, z.B.:
C:\BPL
Ausgabeverzeichnis für die BPL Dateien, die im Namen die Delphi version enthalten. Dieses kann im Package sauber und dynamisch hinterlegen. Aktuelle professionelle Packages nutzen diesen Mechanismus der Versionvergabe seit Jahren. Diese Pfad wir in die PATH Windows Umgebunsvariable ergänzt und kann bei korrekter Namensgebung der Packages, für alle Delphiverisosn gleich sein. Ist also nur einemal im PATH enthalten.

C:\DCP\D104
Das ist das Ausgabeverzeichnis der Package DCP Dateien, die für das Kompilieren benötigt werden, wenn man die Anwendung mit Packages kompiliert. Dieser Pfad kommt dann in den globalen Suchpfad in Delphi, damit das dann für alle Projekte gültig ist. Dieser Ausagebpfad muss pro Delphi Version eindeutig sein, da diese in der Regel, wenn man das Package sauber gemacht hat, keine Delphi Version im Namen enthält. Hierdurch wird das Updaten auf neuere Delphis wesentlich einfacher, da man so die Requires beim Upgrade des Packagessource auf eine neue Delphiversion, nicht verändern muss und es dann einfach reicht das Package mit einem neuen Namen, der die Delphi Version enthält, zu speichern.

Diese beiden Verzeichniss können am einfachsten bei der globalen Konfiguration als Vorgabe für die BPL und DCP Ausgabepfade hinterlegt werden. Dadurch gilt das dann für alle Packages die man kompiliert und die nicht einen eigenen Wert für die Ausgabepfade in den Packagesoptionen hinterlegt haben.

Auch zu beachten ist, dass wenn man selber ein Package erstellt, dieses nicht einfach "MeinPackage" heissen darf (oder soll), sondern die Delphveriosn enthalten muss, damit eine reibungslosen Upgrade auf neuere Delphi Versionengemacht werden kann. "MeinPacakge_D103" wäre so ein Name den man nutzen könnte. In Delphi 10.4 wird dann einfach die alte Package Source geladen und gleich wieder als "Mein Package_D104" gespeichert. Wenn man die Grundkonfiguruation in 10.4 sauber mit den obigen Angaben hinterlegt hat, kann man einfach neu kompilieren und bekommt dann eine neue BPL/DCP für Delphi 10.4. In C:\BPL liegt dann eine 2. BPL Datei, die den Namen "MeinePackag_D104.bpl" hat. Hiermit kann man alle Delphi Versionen der Packages an einem Ort haben und muss sich nicht die PATH Variable überfüllen. Die DCP liegt dann in C:\DCP\D104.
  Mit Zitat antworten Zitat