2009-08-10 5 views
1

Ich habe ein freigegebenes Laufzeitpaket, das ich zur Unterstützung einer Anwendung verwende, die Pakete als Plugin-System verwendet. Ich habe mehrere Einheiten von Drittanbietern in das gemeinsame Paket aufgenommen, um die Anzahl der BPL zu reduzieren, die verteilt werden müssen.Verhindern, dass die IDE die Klausel "requires" eines Pakets ändert

Delphi scheint einige Probleme mit dieser Einrichtung zu haben und aktualisiert gelegentlich nur die DCP-Datei im Bereich "shared DCP" (C: \ Benutzer \ Public \ Documents \ RAD Studio \ 6.0 \ Dcp auf meinem Rechner) und nicht der eine im DCP-Ausgabeverzeichnis (wie in den Projektoptionen angegeben).

, dass, obwohl nicht mein Hauptproblem ist ... Mein Hauptproblem ist, dass Delphi nicht selten diesen Dialog wirft:

Delphi Change Package Dialog

(dies ist nur ein Beispiel, es passiert andere Pakete für I haben auch installiert)

Nun, in Delphi 2009, zumindest wenn ich diesen Dialog abbrechen (und klicken Sie auf Ja in dem Dialogfeld, das als nächstes kommt), ändert es nichts. Frühere Versionen würden weiterhin dazu führen, meine dpk-Datei zu munge.

Ich kann den verdammten Dialog zur Zeit nicht erreichen. Das Paket ist als Laufzeitpaket festgelegt, es hat keine Pakete "erforderlich" (außer den VCL-Paketen). Ich dachte, ich hätte es vor einem Monat geleckt, aber es hat wieder angefangen.

Es gibt keine Änderungen an der DPK-Datei oder der DPROJ-Datei.

Ich weiß, warum es es tut ... Delphi versucht, dieses Paket intern konsistent mit anderen Paketen in der IDE zu halten, nur für den Fall, dass ich es installiere. Ich möchte die IDE dabei stoppen.

Hat jemand irgendwelche Vorschläge?

N @

+0

Entschuldigung für die Verzögerung bei der Überprüfung der Antworten, ich war in einem Theater mit Lichtern für die letzten Tage! – Nat

Antwort

4

Sie ausdrücklich jede der Einheiten im Dialog im enthält Abschnitt der DPK-Datei erwähnt verweisen. Der Dialog zeigt nur Einheiten an, die implizit sind (= nicht in enthält enthält) enthalten und schlägt erfordert das Paket, das sie ursprünglich gehören.

+0

+1. Suchen Sie auch nach den Zeigern, um dies in dieser Antwort zu vermeiden: http://stackoverflow.com/questions/1215664/is-implicitly-imported-always-a-bad-thing-in-delphi-packages/1216131#1216131 –

+0

Danke Uwe! Wenn also ein Paket installiert wird, das eine Einheit enthält, die nicht * explizit * benötigt wird, wird das Paket benötigt ... anstatt Ihnen eine Liste von Einheiten zu geben, mit denen es implizit verbunden ist (wie in diesem Fall) normalerweise). – Nat

+0

Ich denke, die Einheiten sind auch implizit an erster Stelle verlinkt, aber es wird empfohlen, diese Pakete zu verlangen.Wenn Sie auf OK klicken, ist es tatsächlich fertig. –

2

Wenn delphi erfordert dieses Paket ist, weil Sie einige Einheiten verwenden, die nicht im Paket selbst oder in den erforderlichen Paketen sind.

Übrigens, wenn Delphi Sie zur Verwendung dieses Pakets auffordert, weil Delphi ein Paket mit diesen Einheiten "kennt", die Sie brauchen, und Sie nicht deklarieren, wird auch das Paket mit diesen importierten Einheiten "implicity" kompiliert. Dies könnte zu einer inkonsistenten Anwendung führen, wenn Sie mit Paketen arbeiten. Denken Sie daran, dass eine Einheit nur einmal in einer Anwendung geladen werden kann.

Verwandte Themen