Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#3

AW: Neue Komponenten - wo ist der richtige Ort im Verzeichnis?

  Alt 25. Nov 2022, 17:24
Per se ist es egal wo, aber

* DesignTime-Packages und davon geladene RuntimePackages und DLLs müssen in %PATH% stehen.
* Ja, eigentlich werden sie z.B. in KnownPackages explizit mit Pfad angesprochen, ABER dass stimmt nur, wenn sie von der IDE geladen werden.
* * Wird ein Required-Package von einem anderen Package geladen (egal ob dieses Package in KnownPackages stehen), dann werden sie durch Windows, über die ImportsListe, ausschließlich in den DLL-Suchpfaden gesucht.
Und auf die Ladereihenfolge in der IDE hast du keinen Einfluss. (natürlich wäre es technich möglich, dass Delphi es selbstständig richtig machen könnte, aber dafür sind die zu doof)

* reine RuntimePackages, welche nie in der IDE geladen werden, müssen nicht im PATH stehen

* Es gibt zwar theoretisch HKCU\SOFTWARE\Embarcadero\BDS\22.0\Environment Variables : PATH , aber das wird beim Start nicht richtig geladen, bzw. überschreib die EnvironmentVariable des Prozesses nicht richtig
* * echt besch***en, denn nur damit die IDE etwas findet, wird man gezwungen global in PATH etwas zu haben, was dann gern abraucht, wenn es mehr als nur eine IDE gibt.


Ansonsten müssen die Dinge in den richtigen Suchpfaden stehen
* LibrarySearchPath alle BPL/DLL, welche geladen werden müssen
* im SearchPath für den Compiler die PAS oder vorkompilierte DCU und zu verlinktende DCP
* im SearchPath des Editors alle PAS, wo es nur BPL oder vorkompilierte DCU gibt, damit er beim Debuggen und z.B. für's CodestellenSuchen jene findet




Wir haben ein SUBST-Laufwerk, dass bei Allen einheitlich ist.
* auf dem Server alle Laufwerk S: was intern auf ein privates Verzeichnis verlinkt, damit jeder die möglichkeit hat mit unterschiedlichen Versionen/Branches zu arbeiten
* das der ProgrammCode und die Fremdkomponenten haben eigene Git-Repos, welche aktuell auf diesem S: in einer einheitlichen Struktur vorliegt

Die Fremdkomponenten werden durch FinalBuilder compiliert (DevExpress ist aktuell nur als DCU da drin und wird ins benutzerabhängige zentrale Package-Verzeichnis kopiert)
und dann registriert der FinalBuilder diese Packages im Delphi (KnownPackages).

Aber grundsätzlich versuche ich immernoch alles auf relative Pfade umzustellen, da per se die Verzeichnisse egal sind, da sie jeweils durch den FinalBuilder registriert/verlinkt werden.
Weil auf EinzelBentzer-Rechnern ist es umständlich erst ein SUBST einzurichten,

vor allem da vor Jahren Microsoft dort den Papierkorb kaputt gemacht hat
und es Probleme gibt, wenn man Adminrechte benötigt, weil der Admin-Login kennt dann dieses SUBST nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (25. Nov 2022 um 17:37 Uhr)
  Mit Zitat antworten Zitat