Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ? (https://www.delphipraxis.net/213697-delphi-11-28-suchpfad-fuer-bpl-dateien-wie-einstellen.html)

paule32.jk 11. Sep 2023 13:50

Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ?
 
Hallo,

immer wieder habe ich das Problem, das kompilierte BPL Dateien, die ggf. auch schon registriert sind,
von Delphi nicht gefunden werden können, wenn ein anderes BPL-Projekt übersetzt werden soll.

Kann man da was einstellen ?

wenn ja, wo ?

jaenicke 11. Sep 2023 13:54

AW: Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ?
 
Wie ich schon in dem anderen Thread geschrieben habe...
Zitat:

Zitat von jaenicke (Beitrag 1526653)
Zitat:

Zitat von paule32.jk (Beitrag 1526652)
momentan liegen meine BPL Dateien zu JVCL in: E:\Projekte\jediRX\jcl\jcl\lib\d22\win32\bpl

Dann musst du diesen Pfad auch dem Systempfad (PATH) hinzufügen. Der Installer (der bei der CE nicht geht) packt diese Dateien in das BPL-Verzeichnis deiner Delphiinstallation, der schon im PATH drin ist.

Das sind im Grunde DLLs und die werden auch entsprechend gesucht.

himitsu 11. Sep 2023 16:27

AW: Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ?
 
Ja, alle Packages müssen im Suchpfad (PATH) stehen,
denn wenn ein Package ein Anderes läd, dann über den Suchpfad (denn den Eintrag mit Pfad in der Registry, kennt das dort nicht.

So in "Known Packages" registriert
C:\Pfad\Package1.bpl
C:\Pfad\Package2.bpl

Wobei Package2 das Package1 in seinen Requires drin hat (also als DLL-Import, wie bei einer DLL)

Wird erst Packages1 und dann Package2 geladen, ist alles OK,
aber wird zuerst Package2 geladen, dann versucht Windows Package1 zu laden, aber wenn es Dieses nicht in den DLL-Suchpfaden findet, dann knallt es.
(Besonders schön auch, dass Delphi dann sagt "Package2 wurde nicht gefunden", obwohl Windows meint Package1 sei das Problem)
https://learn.microsoft.com/de-de/wi...y-search-order


Umgebungsvariablen:
Es kann das in dem %PATH% vom System sein (SystemVariables), im %PATH% vom WindowsBenutzer (UserVariables) oder das %PATH% im Delphi (Tools > Optionen > IDE > Umgebungsvariablen)



Zitat:

Zitat von himitsu (Beitrag 1526624)
z.B. die Compiler-Schalter in der DPK kommen aus der DPROJ, allerdings schwachsinnig die Variante der Basis-Config (wie um Himmels Willen soll der Dreck mit dem IMPLICITBUILDING funktionieren, wenn die falsche Config und falsche sonstige Projektoptionen, wie z.B. Ausgabepfade, verwendet werden)

Und dann noch den Quatsch mit ImpliciteBuilding, weil dort wird nur die DPK benutzt (nicht die DPROJ), wo dann die falsche Config (Basis und nicht das Aktive, wie z.B. Release oder Debug) in der DPR steht,
sowie auch eingestellte Ausgabepfade fehlen, die aus den Projektoptionen des impliziten Packages.




Wobei es dafür seit Jahren einen offenen Bugreport bei Emba gibt, denn sie bräuchten einfach nur vorm/beim Laden der Packages alle Pfade der registrierten Packages (zumindestens Jene, welche nicht in %PATH% stehen, als DLL-Suchpfad beim Windows registrieren. (temporär, während der Abarbeitung der Liste, oder einfach permanent)

Hätte also schon seit knapp einem Jahrzehnt behoben sein können. https://quality.embarcadero.com/browse/RSP-10321

Uwe Raabe 11. Sep 2023 17:02

AW: Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ?
 
Zitat:

Zitat von paule32.jk (Beitrag 1526743)
das kompilierte BPL Dateien, die ggf. auch schon registriert sind,
von Delphi nicht gefunden werden können, wenn ein anderes BPL-Projekt übersetzt werden soll.

Zum Kompilieren werden die BPL-Dateien gar nicht benötigt, sondern eher die DCP-Dateien. Eine Ergänzung der PATH-Variable zu den BPLs wird daher vermutlich nicht viel bringen.

Man macht sich das Leben einfacher, wenn man bei DCP-Ausgabeverzeichnis und Package-Ausgabeverzeichnis einfach gar nichts angibt. Dann landen die beiden Dateien in den Standardpfaden der gerade verwendeten Delphi und werden in der Regel auch gefunden.

Für den Fall dass die Anwendung mit Laufzeit-Packages erstellt wird (was aus deinen Ausführungen erstmal nicht zu entnehmen ist), müssen die BPLs natürlich mit ausgeliefert werden und sollten am besten direkt im selben Verzeichnis wie die Exe liegen.

paule32.jk 11. Sep 2023 19:00

AW: Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ?
 
@Uwe:
es handelt sich um JEDI, bei denen in der VCL Version Laufzeit, wie auch Design-Time Packages
handelt.
Leider kann ich kein GetIt installieren, weil dort Nichts angeboten wird, und den Umweg von
kompilieren per Hand gehen muss.

Ich habe auch festgestellt, das Delphi gerne mal Laufzeit und Design Packages mischt, und automatisch
hinzufügt, und man keine Möglichkeit hat, dies zu unterbinden.
Es wird dann ein OK-Button angeboten, der dann stupiderweise, ich weiß nicht woher es die Informationen
nimmt, Packages nachschiebt.
Und der Cancel-Button einfach das Info-Fenster schließt.

Kann man ja in manchen Thread's lesen, das dann aufwendig die Packages in Design und Runtime umgebastelt
werden müssen ...

Aber das mit den PATH werde ich nochmals prüfen ...

@himitsu:
Ich sehe gerade wieder 4 Probleme:
PATH gibt es nur einmal:

- PATH für 32-Bit Debug
- PATH für 64-Bit Debug

- PATH für 32-Bit Release
- PATH für 64-Bit Release

himitsu 11. Sep 2023 19:05

AW: Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ?
 
Ein Package als Runtime markieren (Projektoptionen)
oder auch explizit als DesignTime.
:roll:

Die Jedi waren mal im GetIt der CE drin, aber da Jedi das GetIt bloß als Downloader nutzt und dann ein eigenes Setup startet, welches den Kommandozeilen Compiler (dcc32.exe / dcc64.exe) aufrufen will, was aber in der CE nicht geht ... ja, da war es besser, das aus GetIt zu verbannen, wenn es "so" eh nicht funktioniert.

paule32.jk 11. Sep 2023 19:42

AW: Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ?
 
ich bekommes es nicht hin.
- habe den PATH erweitert, mit den des DCP, und BPL.
- das Delphi mit Admin Rechte gestartet, selbes Verhalten:

Code:
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclIniFiles' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclResources' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclDevToolsResources' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclHelpUtils' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclMsBuild' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclCompilerUtils' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclTD32' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclPeImage' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclConsole' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclWideStrings' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclRegistry' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclSecurity' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclDateTime' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclFileUtils' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclLogic' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclStringConversions' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclCharsets' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'Jcl8087' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclStreams' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclWin32' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclSynch' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclUnitVersioningProviders' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclUnitVersioning' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclIDEUtils' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclDotNet' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclSimpleXml' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclDebug' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclHookExcept' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclSysUtils' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclStrings' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclUnicode' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclSysInfo' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclShell' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'Snmp' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclAnsiStrings' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclMath' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Warnung] JclBaseExpert.dpk(63): W1033 Die Unit 'JclBase' wurde implizit in Package 'JclBaseExpert' importiert
[dcc32 Fataler Fehler] JclStackTraceViewerExpert.dpk(42): E2202 Package 'JclBaseExpert' wird benötigt, konnte aber nicht gefunden werden
Misslungen
Verstrichene Zeit: 00:00:00.8
JclBaseExtern läßt sich aber übersetzen, und die DCP sowie die BPL existieren

himitsu 11. Sep 2023 20:06

AW: Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ?
 
Die Fehlermeldungen sagen doch alles?
Einmal, weil du die REQUIRES vergessen hast.
Und die JclBaseExpert.dcp nicht in den Compilersuchpfaden gefunden wurde.

REQUIRES in Packages (DPK) und LaufzeitPackages in ProjektOptionen von DLL oder EXE werden immer genommen.
Wird die DCP nicht gefunden, dann knallt es mit "Package nicht gefunden".
Angegebene DCP müssen über den Suchpfad in IDE oder Projektoptionen gefunden werden können.

BPL-Suchpfade gehören für eines der PATH für die IDE, zum Laden der Packages.


DU hast aber Units in dein Package eingebunden, welche in ein anderes Package gehören.
Units müssen "namentlich" global in der gesamten IDE-Instanz eindeutig sein.
Also selbst wenn du es kompilieren könntest, würde es dann beim Versuch das in der IDE zu laden sowieso knallen.

DU musst also dein Package so kompilieren, dass es die andere BPL benutzt, anstatt selbst diese Units einzukompilieren.

Implizit heißt, dass diese Unit nicht "explizit" zum Projekt gehören (also in DPR/DPK nicht explizit via IN im USES eingetragen sind, sondern sie "implizit" irgendwo in DPR/DPK/PAS in irgendeinem USES bloß genannt wurde und eventuell über Suchpfade gefunden wurde)

Stolle58 12. Sep 2023 11:47

AW: Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ?
 
Hallo Paule32,
wo hast Du die Jedi's den her.

paule32.jk 13. Sep 2023 00:47

AW: Delphi 11 (28) - Suchpfad für BPL Dateien ... wie einstellen ?
 
@stolle:

die kannst Du auf meinen github account saugen


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz