Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verschieben von Units in andere Packages... Delphi will nich (https://www.delphipraxis.net/66419-verschieben-von-units-andere-packages-delphi-will-nich.html)

ogiesen 29. Mär 2006 14:23


Verschieben von Units in andere Packages... Delphi will nich
 
N'Abend!

[Vorabinfo: Ich benutze Delphi 7.1]

Ich bin hier gerade dabei den Koller zu kriegen. Ich habe eine Projektgruppe mit etlichen voneinander abhängigen Runtimepackages, sowie wiederum davon abhängigen DLLs und einer EXE. Im Rahmen eines Refactorings würde ich nun gerne einige Units aus einem der bestehenden Packages (im Folgenden "PackageA") neu zuordnen, und zwar zum Teil in ein weiteres bereits vorhandenes Package ("PackageB") und zum anderen Teil in ein gänzlich neues Package ("PackageC"). Einige Units sollen auch in PackageA verbleiben. Vor dem Refactoring war PackageA abhängig von PackageB. Nach dem Refactoring soll PackageB abhängig sein von PackageA und PackageC von PackageA und PackageB.

Soweit so gut, die Umverteilung der Units auf die DPKs, sowie das Anpassen der Required-Klauseln hat funktioniert. Das nun deutlich geschrumpfte PackageA läßt sich einwandfrei kompilieren. Nur bekomme ich nun beim Kompilieren von PackageB von Delphi die Meldung, dass es gerne die neu hinzugekommenen Units wieder entfernen würde, weil diese bereits in PackageA gefunden wurden, was ja aber definitiv nicht mehr stimmt. Kein Delphi-Neustart, kein Löschen von DCU, DCP und BPL-Dateien vermag Delphi vom Gegenteil zu Überzeugen. Wenn ich PackageA aus der Required-Klausel von PackageB streiche, kann ich PackageB zwar mit den verschobenen Units kompilieren, aber dann werden natürlich auch die Units aus PackageA implizit hinzugefügt...

Hat irgendjemand eine Idee, wo sich Delphi die Packagezugehörigkeiten von Units merkt? Die Units wurden übrigens nicht nur in den DPKs verschoben, sondern auch physikalisch. Die .pas-Dateien von jedem Package liegen in einem eigenen Verzeichnis. Wenn ich mir die Resoucen von PackageA.bpl angucke, kann ich auch definitiv keine Referenzen auf die verschobenen Units mehr finden...

Hilfe!!!?

Oliver

Elvis 29. Mär 2006 14:36

Re: Verschieben von Units in andere Packages... Delphi will
 
Ich bin da einen anscheinend selten genutzten Weg gegangen.
Generell habe ich nur die DCUs im Suchpfad. Auf die Art sieht jedes Projekt nur seinen eigenen (Pascal-) Code, aber ich kann jede generierte DCU sofort verwenden.
Hast du dir mal den Source code der DPK angesehen? Kann es sein, dass dort noch einige Units stehen, die nicht Teil des Projektes sind?

ogiesen 2. Apr 2006 01:25

Re: Verschieben von Units in andere Packages... Delphi will
 
Und jetzt des Rätsels Lösung:

Vorweg ein paar kleine Erklärungen:
  • BPLs werden bei uns per Firmenkonvention alle nach $(windir)\System32 kompiliert, wo man ja leicht mal den Überblick verlieren kann...
  • Nach dem Update auf D7 haben wir angefangen die Suffix-Funktion zu nutzen. Unsere Kompilate heißen mittlerweile also alle PackageA70.bpl, PackageB70.bpl und so weiter...
  • Als ich zuerst in System32 nach BPLs gesucht hatte, um diese zu löschen, hatte ich nicht wirklich gesucht, sondern nur nach Änderungsdatum sortiert und dann von Hand am Anfang der Liste selektiert...
Muss ich noch mehr sagen?... ;)


















Es gab tatsächlich noch ein PackageA.bpl von 2003... D'Oh! ;)

Cheers, ich mach jetzt erstmal Urlaub.

Oliver

Elvis 2. Apr 2006 01:31

Re: Verschieben von Units in andere Packages... Delphi will
 
Zitat:

Zitat von ogiesen
Muss ich noch mehr sagen?... ;)

Es gab tatsächlich noch ein PackageA.bpl von 2003... D'Oh! ;)

Cheers, ich mach jetzt erstmal Urlaub.

Nope, musst du nicht.
IMHO ist es besser ein DVU/DCP-Verzeichnis für jede Delphi version zu haben. So gibt es keine Probleme mit D2007 <-> D7 und man sieht sofort womit man da arbeitet.
Der BPL/DCP-Ordner wird in die PATH Variable eingetragen und jede App findet es sofort.

btw: Da wünsche ich doch glatt einem Simpsons Fan gute Erholung :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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