AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [Delphi 2007] Packages installieren mit Abhängigkeiten
Thema durchsuchen
Ansicht
Themen-Optionen

[Delphi 2007] Packages installieren mit Abhängigkeiten

Ein Thema von MasterEvil · begonnen am 7. Jun 2007 · letzter Beitrag vom 8. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#1

[Delphi 2007] Packages installieren mit Abhängigkeiten

  Alt 7. Jun 2007, 10:23
Hallo,

ich portiere im Moment (immernoch) von Delphi 6 auf Delphi 2007.
Habe jetzt auch glaub ich alles hinbekommen, bis auf eine Sache.

Ich habe ein Package (A) mit einer Abhängigkeit zu einem zweiten Package (B).
Wenn ich nun Package A installiere, installiert er auch brav Package B mit und alles sieht wunderbar aus. Wenn ich dann aber Komponenten aus Package A benutzen will oder Delphi neustarte kommt die Fehlermeldung das er die PackageB.bpl nicht finden kann (im Bezug auf Package A) und deaktiviert Package A. Package B bleibt aber weiterhin installiert und die dort enthaltenen Komponenten können auch benutzt werden.

Ich hab in allen Suchpfaden die Pfade zur PackageB.bpl drin, sogar in den Bibiliothekspfaden von Delphi selber. Finde nichts mehr, wo ich die Pfade eintragen kann.

Die einzige Lösung, die ich momentan gefunden hab, ist die PackageB.bpl in den allgemeinen BPL Ordner von Delphi zu packen (C:\Dokumente und Einstellungen\All Users\Dokumente\RAD Studio\5.0\Bpl\). Dies ist aber für unsere gesamte Firma eigentlich keine Lösung. Außerdem muss man beim neucompilieren immer daran denken, sie dort wieder rein zu kopieren ...

Hat jemand eine Idee? Mache ich etwas falsch?

Gruß,
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: [Delphi 2007] Packages installieren mit Abhängigkeiten

  Alt 8. Jun 2007, 11:03
Keiner eine Idee?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: [Delphi 2007] Packages installieren mit Abhängigkeiten

  Alt 8. Jun 2007, 11:10
Nimm den Ausgabepfad aus den Packageeinstellungen raus, dann wird die bpl beim Erstellen automatisch den den Standard-BPL-Ausgabepfad geschrieben
Markus Kinzler
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: [Delphi 2007] Packages installieren mit Abhängigkeiten

  Alt 8. Jun 2007, 11:33
Hallo,

hier ein kurzer Auszug aus der Hilfedatei zum Virtual TreeView:

Zitat von Mike Lischke:
There seems always to be some serious confusion about how to install components in Delphi (packages are not loaded after restart or are not found when used by other packages, suddenly error messages are shown like "device does not function properly", strange compiler messages appear because of version mismatches etc.), so let me first give you a solution which I found after many trials and errors. It solved most of my package problems now for a long time.

The core of the solution is to compile always every intermediate file into the same output folder and put this folder into the system's search path. This means, chose a path (I use C:\Temp\Out) and set it as dcu, dcp and bpl output folder. Set this path also as library default path in the IDE options and remove the default $(Delphi)\BPL path which often led to misleading version information (or use this path exclusively as compile target). This way you will always find only one version of your bpls and the IDE is able to use them, particularly if you have deep dependency nesting, as I do. You can still have several source folders but use only one output directory (of course, final project results like exe or DLL can be compiled into their respective local folder, they are not shared and hence do not have this problem). Don't forget to take this output directory in the search path of the system (PATH variable in autoexec.bat on Win9x/Me and My Computer/Properties/../Environment Variables on Windows NT/2K/XP).
Seit ich die von Mike vorgeschlagene Lösung ebenfalls verwende, habe ich deutlich weniger Probleme bei der Installation und Verwendung von Komponenten in Delphi.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: [Delphi 2007] Packages installieren mit Abhängigkeiten

  Alt 11. Jun 2007, 08:02
Danke für eure Hilfe.

Mhhh, da hab ich wohl keine andere Wahl, als das auch so zu tun
Find ich aber eigentlich daneben! Bei uns liegen diese Sachen alle in speziellen Ordnern.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

Re: [Delphi 2007] Packages installieren mit Abhängigkeiten

  Alt 11. Jun 2007, 15:31
Zitat von MasterEvil:
Mhhh, da hab ich wohl keine andere Wahl, als das auch so zu tun
Find ich aber eigentlich daneben! Bei uns liegen diese Sachen alle in speziellen Ordnern.
Wie haben alle Packages in eigenen Ordnern und es funktioniert super.

Unsere Struktur ist:
...\Packagesammlung\lib
...\Packagesammlung\sys

In \lib sind alle Dateien, die in den Biblithekssuchpfad gehören.
Das sind *.dcu, *.dcp, *.dfm, *.res, *.dcr, ...

In \sys sind alle Dateien, die in den Systempfad gehören (PATH=...\sys;...)
Das sind *.bpl (und evtl benötigte *.dll, ...)

Beim Arbeiten mit dieser Struktur haben wir bisher noch keine Probleme gehabt.

Code:
B:\Delphi10\comp\
+---Advantage
|   +---lib
|   \---sys
+---CrystalReportsVCL
|   +---lib
|   \---sys
...
+---DOA
|   +---lib
|   \---sys
+---DevExpress
|   +---lib
|   \---sys
+---Envision
|   +---lib
|   \---sys
...
+---JEDI
|   \---JCL
|       +---lib
|       \---sys
...
Obiges Beisp. benötigt also folgenden Pfad:
Code:
Path=%path%;B:\Delphi10\comp\Advantage\sys;B:\Delphi10\comp\CrystalReportsVCL\sys;B:\Delphi10\comp\DOA\sys;B:\Delphi10\comp\DevExpress\sys;B:\Delphi10\comp\Envision\sys;B:\Delphi10\comp\JEDI\JCL\sys;
und folgenden Bibliothekspfad:
Code:
"HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Library\Search Path"="$(BDS)\lib;$(BDSUSERDIR)\Imports;$(BDS)\Imports;$(BDS)\Lib\Indy10;$(BDSCOMMONDIR)\Dcp;B:\Delphi10\comp\Advantage\lib;B:\Delphi10\comp\CrystalReportsVCL\lib;B:\Delphi10\comp\DOA\lib;B:\Delphi10\comp\DevExpress\lib;B:\Delphi10\comp\Envision\lib;B:\Delphi10\comp\JEDI\JCL\lib"
Alle Komponenten und 3th party tools sowie Experten sind bei uns NICHT lokal installiert, sondern liegen in der Versionsverwaltung. Auf den Rechnern ist nur das blanke Delphi installiert. Es gibt zu jedem Projekt eine Definitionsdatei in der steht welche Komponenten (in welcher Version) das Projekt benötigt. Beim Doppelklick auf diese Konfigurations-Datei wird ein Programm gestartet, das die benötigten Komponenten in der "richtigen" Version in der Versionsverwaltung auswählt, Den Systempfad anpasst, in Delphi die benötigten Package installiert und die Pfade setzt. (Registry) Danach wird automatisch Delphi gestartet und das Programm lässt sich kompilieren.
Damit haben wir erreicht, das jedes Programm (egal welche Komponenten verwendet werden) auf jedem PC kompilierbar sind.

Projekt1 benötigt z.B. DOA3 und DevExpress Quantum Grid 3
Doppelklick auf die Konfig und Delphi ist in Sekunden gestartet -> es kann kompiliert werden.

Projekt2 benötigt z.B. DOA4, DevExpress Quantum Grid Version 6.25, JCL und ADS
Doppelklick auf die Konfig und Delphi ist in Sekunden gestartet -> es kann kompiliert werden.

Unser Build-Server der die offiziellen Lieferungen kompiliert kann somit auch auf alles zugreifen.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: [Delphi 2007] Packages installieren mit Abhängigkeiten

  Alt 11. Jun 2007, 16:41
Hallo Mabuse,

danke für deine ausführliche Antwort.
Euer System gefällt mir, aber ist für uns nicht praktikabel.
Unsere Ordnerstruktur sieht allerdings eurer sehr ähnlich.

Deine Beschreibung hat bei mir nichts geändert (ich nehme an bei Pfad meintest du den Suchpfad!?!), ich habe allerdings das Thema durch dich nochmal aufgegriffen und nun endlich die Lösung gefunden!
Hast du denn überhaupt Abhängigkeiten in deinen Packages (also ein anderes eigene Package im requires des Packages)?

Die Lösung ist, dass aus anderen Packages heraus geladene BPL sich wie DLLs und Packages in Anwendungen verhalten. Sprich: Das Package muss in einem Systempfad liegen.
Also in einem Pfad der in der Umgebungsvariable "Path" steht.
Dort muss also der Pfad nur hinzugefügt werden und Delphi findet ihn. Finde ich sehr nervig, aber ist wohl nicht änderbar.

Interessant ist, dass es in der Registry unter HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Library einen Wert "Package Search Path" gibt, der aber in der IDE nicht nach außen geführt wurde und leider wohl auch nichts bringt (hatte ihn gesehen und erstmal gejubelt - leider zu früh ...).

Gruß,
Steffen
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.884 Beiträge
 
Delphi 12 Athens
 
#8

Re: [Delphi 2007] Packages installieren mit Abhängigkeiten

  Alt 11. Jun 2007, 16:55
Wir haben meist das Probelem das er die Dcu und bpl datein nicht neu compiliert
was aber sein sollte.
Diese BPL und dcu dateien liegen auch schon mal im Windows Ordner!!!!

Follegende Vorgehensweise um Abhängige Packages neu zu compilieren:

1. Packege 1 aus deaktiviern, Delphi neustart
2. Package 1 aus delhie entfernen, Delphi neustart
3. siehe 1. mit Package 2
4. siehe 2. mit Package 2
5. auf dem gesammten system nach Compilaten (dcu, bpl )der beiden Packages suchen und diese löschen(auch im windows ordner)
6. Packages in der richtigen Reihenfolge wieder erzeugen (Projekt erzeugen) und einbinden.

leider müssen wir das jedes mal machen wenn wir die Packages verändern......
deswegen scheint die Lösung mit dem einen Pfad verlockender.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: [Delphi 2007] Packages installieren mit Abhängigkeiten

  Alt 11. Jun 2007, 16:57
Mit Pfad meinte ich dem Systempfad. *.bpl Dateien sind eigentlich nur aufgemotzte *.dll Dateien. Und sie müssen wie *.dll Dateien eben im Pfad (ich meine Systempfad) stehen.
Daher mein Codebeisp. PATH=%PATH%; ... (das ist ja der SystemPfad)

Ja wir haben viele Abhängigkeiten. z.B. wenn eigene Komponenten auf 3th party Kompontnenen basieren.

Die Trennung in \lib und \sys hat sich als sehr praktikabel erwiesen.

sys:
Da beim Suchen in dem SystemPfad alle Verzeichnisse durchsucht werden, ist es von Vorteil diese sehr klein zu halten (Machmal steht nur eine *.bpl drin, machmal 20 *.bpl Dateien).

lib:
Die *.dcp , *.dcu sowie Resourcen Dateien (*.dfm, *.res, *.dcr, ...) gehören in den Bibliotheksuchpfad. Da nur der Compliler bzw die IDE diese Dateien benötigen.

Der "Bibliotheksuchpfad" im Optionendialog ist in der Registry der "Search Path".
Und der "Suchpfad" im Optionendialog ist in der Registry der "Browsing Path".
Das darf man nicht verwechseln
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

Re: [Delphi 2007] Packages installieren mit Abhängigkeiten

  Alt 11. Jun 2007, 17:06
Zitat von QuickAndDirty:
Wir haben meist das Probelem das er die Dcu und bpl datein nicht neu compiliert
was aber sein sollte.
In Delphi 2007 für Win32 gibt es eine msbuild Unterstützung.
Und damit ist es auch erstmals möglich ganze Projektgruppen inkl. der definierten Abhänigkeiten komplett zu kompilieren.

Also Deine Packages alle in eine Projektgruppe
Abhängigkeiten definieren
Speichern und dann von der Eingabeaufforderung mit
Code:
msbuld Projektgruppendatei
kompilieren.
msbuild ruft dann für die einzelnen Projekte (in Deinem Fall Packages) den dcc32 auf.

Wenn alle Package kompiliert wurden kannst Du Delphi wieder starten und fertig.
(Das habe ich schon öfter gemacht, wenn ich in einem Baispackage was ändere, können leicht 20 bis 100 Packages davon betroffen sein.

Das ist meiner Meinung nach mit eine der besten Neuerungen in D2007
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 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