korrekt festlegen Wie "Verzeichnisse/Conditionals" in den Projektoptionen und "Bibliothek" Pfad in Umgebungsoptionen festlegen? Delphi Hilfe sagt nicht viel über diese sehr wichtigen Einstellungen. Ich habe alle Arten von seltsamen Fehlern wegen der falschen Abhängigkeiten zwischen meinen VCLs.Wie "Verzeichnisse/Conditionals" und "Library" Pfad
1.
Ich habe eine große Menge von 3rd-Party-Kontrollen in einem Paket zusammengefasst ThirdPartyPackages_D7.dpk genannt. Dies ist nützlich, wenn ich Delphi neu installiere, weil ich nicht alle diese VCLs von Drittanbietern neu installieren muss.
Dann habe ich meine eigenen Steuerelemente in MyControls_D7.dpk, die von der ThirdPartyPackages VCL abhängt. Ich habe auch ein anderes Paket BlgPackage.dpk, das von MyControls abhängt.
Am Ende der Kette ist meine Anwendung (DPR-Projekt), die Steuerelemente in BlgPackage verwendet.
ThirdPartyPackages.dpk -> MyControls.dpk -> BlgPackage.dpk -> MyApplication.dpr
Wenn ich ändern/bearbeiten, etwas zu dem zweiten Paket (MyControls.dpk) und die DVR-Anwendung erstellen, es funktioniert. Der Compiler sieht die Änderungen in diesem Paket. Wenn ich jedoch das Projekt schließe und das BlgPackage lade und kompiliere, gibt es eine unangenehme Nachricht, dass die Funktion xyz in MyControls nicht gefunden wird, weil ich sie lösche (ich habe die MyControls-Einheiten parallel zur Anwendungseinheit in die IDE geladen). Es scheint, dass beim Erstellen der Anwendung nur die DCU-Dateien für alle verwendeten Pakete aktualisiert werden, nicht jedoch für die DCP/BLP-Dateien.
Wie schreibe und kompiliere ich den Code in den Paketen, ohne die Pakete explizit in die IDE zu laden und sie zu erstellen? (Anmerkung: Ich habe einen bösen Fehler, der nicht erlaubt, mich zwischen den Projekten zu wechseln, ohne die IDE neu zu starten oder eine Gruppe von Projekten/packages (* .bpg) zur gleichen Zeit zu laden.)
2.
Ein weiteres Problem ist, dass ich die kompilierten Dateien (DCP/BPL/DCU) eines Pakets in seinem Ordner speichern möchte (zum Beispiel c: \ MyProjects \ Blg).
Wenn ich die Felder "Output directory", "Unit output directory" und "DCP output directory" des BlgPackage-Pakets in seinen Ordner setze, werden dort nicht nur die BPL/DCU/DCP-Dateien gespeichert, sondern auch die BPL/DCP-Dateien von MyControls wird dort gespeichert. Wie kann ich die Binärdateien jedes Pakets in einem separaten Ordner haben?
Delphi 7, Win XP, alle Projekte auf „je nach Bedarf neu erstellen“
@ Serg-ich glaube nicht, dass die No2 funktioniert.Die Delphi 7-Hilfe besagt Folgendes: "Wenn Sie versuchen, Ihr Paket mit einer Datei zu erstellen, die sich nicht im Bibliothekspfad befindet, erhalten Sie einen Compilerfehler". Daher kann ich mein Paket nicht kompilieren, wenn ich seinen Pfad aus der Bibliothek entferne. – Ampere
Ich habe das gemacht und jetzt kann ich das Projekt nicht kompilieren. Ich kann keine der DCUs finden. Diese DCU gehört zu MyControls. Es befindet sich in demselben Ordner, in dem sich die MyControls PAS-Dateien befinden. – Ampere
@Altar - Speicherung von .DCU im selben Ordner wie .PAS ist eine schlechte Praxis und sollte vermieden werden. DCUs sollten über den Pfad "Library" verfügbar sein, während Quellen (.pas) normalerweise nicht verfügbar sind. In jedem Fall können Sie die DCU, die Probleme verursacht, manuell in den Ordner kopieren, der über den Pfad "Library" verfügbar ist, wenn Sie aus irgendeinem Grund den DCU-Pfad nicht in den Paketoptionen festlegen möchten. – kludg