Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Ausliferung eines Programms mit Laufzeit-Packages (https://www.delphipraxis.net/182463-ausliferung-eines-programms-mit-laufzeit-packages.html)

Sunec 27. Okt 2014 12:53

Ausliferung eines Programms mit Laufzeit-Packages
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

wenn ein Programm mit Laufzeit-Packages erstellt wurde, müssen diese auch zur Verfügung gestellt werden.

Entweder müssen sie im Suchpfad des Systems vorhanden sein oder aber im gleichen Ordner der Programm-Exe vorliegen.

Besteht die Möglichkeit, dass die Packages auch in einem Unterordner innerhalb des Programmverzeichnisses vorliegen können?

CCRDude 27. Okt 2014 13:00

AW: Ausliferung eines Programms mit Laufzeit-Packages
 
Wenn dann äußerst umständlich - schaust Du in die exe, wirst Du sehen, dass die über die Import-Table direkt gelinkt werden.

Man könnte sich Konstrukte überlegen wie etwa, den Packages-Pfad global in den Suchpfad aufzunehmen ( :cry: ) oder einen packagelosen Launcher das Programm mit verändertem Suchpfad starten zu lassen. Macht's aber eher fehleranfälliger.

himitsu 27. Okt 2014 13:08

AW: Ausliferung eines Programms mit Laufzeit-Packages
 
Ja, Windows sucht, wie bei den DLLs (denn im Grunde sind das ja auch nur DLLs, welche ein bissl aufgemotzt sind) an den bekannten Orten.

http://msdn.microsoft.com/en-us/libr.../ms682586.aspx (Search Order for Desktop Applications)

Sunec 27. Okt 2014 13:37

AW: Ausliferung eines Programms mit Laufzeit-Packages
 
Vielen Dank schonmal für Eure Antworten und den Link.

Eigentlich wollte ich Eintragungen in Suchpfade und Registry verhindern und dachte es wäre über die Projekteinstellungen konfigurierbar.

Das scheint jedoch nicht der Fall zu sein.

Werde dann wohl ein Hilfsprogramm schreiben, welches vorher durch SetDllDirectory oder manuell die Vorarbeit leistet.

himitsu 27. Okt 2014 13:53

AW: Ausliferung eines Programms mit Laufzeit-Packages
 
Da "statischen" DLLs/BPLs noch vor Ausführung deines Programmcodes geladen werden, müssten dort ja "statische" (hardgecodete) Pfade drin stehn.
Und sowas macht man doch nicht, genauso wie man keine relativen Pfade (ohne einen festen Bezugspunkt) nimmt.

CCRDude 27. Okt 2014 14:01

AW: Ausliferung eines Programms mit Laufzeit-Packages
 
Wieso?

Das Hilfsprogramm kann ja Package-frei sein und Pfade beliebig ermitteln...

Sunec 27. Okt 2014 14:12

AW: Ausliferung eines Programms mit Laufzeit-Packages
 
Zitat:

Zitat von himitsu (Beitrag 1277521)
Da "statischen" DLLs/BPLs noch vor Ausführung deines Programmcodes geladen werden, müssten dort ja "statische" (hardgecodete) Pfade drin stehn.


Wie CCRDude schon schrieb hatte ich vorgesehen das Hilfsprogramm simpel zu halten, so dass es komplett ohne Laufzeit-Packages auskommt.



Zitat:

Zitat von himitsu (Beitrag 1277521)
Und sowas macht man doch nicht, genauso wie man keine relativen Pfade (ohne einen festen Bezugspunkt) nimmt.


Der feste Bezugpunkt ist gegeben und wäre in dem Fall der Ordner, in dem sich die Exe befindet.

himitsu 27. Okt 2014 14:32

AW: Ausliferung eines Programms mit Laufzeit-Packages
 
Zitat:

in dem sich die Exe befindet.
Man könnte auch das Arbeitsverzeichnis dafür nehmen, von Welchem meistens die relativen Pfade ausgehn. :stupid:

PS: Es gibt auch noch die side-by-side Assemblies. :lol:
http://msdn.microsoft.com/en-us/libr.../ff951640.aspx

Sunec 27. Okt 2014 19:01

AW: Ausliferung eines Programms mit Laufzeit-Packages
 
Habe es nun per Hilfsprogramm umgesetzt, welches gleichzeitig auf Programmupdates prüft.

Danke nochmals für den Input :thumb:

Sherlock 28. Okt 2014 06:53

AW: Ausliferung eines Programms mit Laufzeit-Packages
 
Na dann, willkommen in der BPL-Hölle :thumb:

Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:20 Uhr.
Seite 1 von 2  1 2      

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