Package Installation schlägt fehl
Beim Installieren eines eigenen Packages erhalte ich "das angegebene Modul wurde nicht gefunden"...
aber das BPL-File ist vorhanden. Auf Grund eines Tips habe ich jetzt mal das BPL debuggen lassen und bekomme dabei die Meldung: "Im Projekt bds.exe ist eine Exception der Klasse EFOpenError mit der Meldung 'Datei C:\Users\Stefan\sanct.log kann nicht geöffnet werden. Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird' aufgetreten." Könnte das die Ursache sein und wer hat da Zugriff? Ciao Stefan |
AW: Package Installation schlägt fehl
Die Meldung kommt immer wenn man die IDE selbst mit einer anderen Instanz im Debugger startet.
|
AW: Package Installation schlägt fehl
Zitat:
Also: Ignorieren, hat nichts mit Deinem Fehler zu tun. |
AW: Package Installation schlägt fehl
danke, aber ich komme immer noch nicht weiter:
Compilieren des Packages ist fehlerfrei, bei Installation dann "Das angegebene Modul wurde nicht gefunden!" Ich habe hier den Tip mit dem ProcessMonitor gefunden, aber ich komme mit dem überhaupt nicht klar, finde auch keine für diesen Zweck hilfreiche Anleitung... Ein Filtern nach "Process is bds.exe" zeigt nirgends fehlende Dateien / dll's / etc... Ciao Stefan |
AW: Package Installation schlägt fehl
Zitat:
|
AW: Package Installation schlägt fehl
Modul = EXE/BPL/DLL (die EXE läuft schon, also ist zumindestens die BDS.exe nicht das Problem)
Das kompilieren läuft bei abhängigen Packages gegen die DCP, aber beim Ausführen wird natürlich die BPL benötigt. Tja, diese Fehlermeldung heißt nicht "DAS wurde nicht gefunden", sondern "hab DAS versucht zu laden, aber ging nicht, weil IRGENDWAS fehlte" Aber es gibt Hilfsprogramme, zum Nachgucken. * Dependency Walker * SysInternals ProcessMonitor Und alle Fehlermeldungen bezüglich Sanctuary kannst ignorieren. Es ist normal, dass der kranke Kopierschutz von Emba intern überall knallt. |
AW: Package Installation schlägt fehl
Zitat:
Der alte Dependecy Walker wird nicht mehr weiterentwickelt und hatte zumindest bei mir die Angewohnheit sehr lange Denkpausen einzulegen, wenn er sich durch die Abhängigkeiten wühlte. |
AW: Package Installation schlägt fehl
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. |
AW: Package Installation schlägt fehl
Regisrierte BPLs werden aus dem Pfad geladen, womit sie registriert wurden.
z.B. "Known Packages" Aber BPL aus Abhängigkeiten, welche Windows (vorher) lädt, werden nur im Suchpfad gesucht ... aber dass später ein Eintrag zum Laden folgt, inkl. Pfad, wird nicht beachtet. die einzige praktikable Lösung wäre, wenn BPL vorher nach Abhängigkeit sortiert und dann geladen würden. (Probleme würde dann zwar noch dynamisches Laden ergeben, aber da könnte man den Pfad mit angeben) |
AW: Package Installation schlägt fehl
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz