![]() |
Komponenteninstallation XE5 schlägt fehl [gelöst]
Halli Hallo,
Wir habe da einige selbst entwickelte Komponenten die bisher immer in allen Delphi-Versionen problemlos installiert werden konnten. Wenn ich diese nun in Delphi XE5 installieren will passiert etwas sehr seltsames (ich kann es mir zumindest nicht erklären): Neben einer Reihe von anderen Komponenten existiert in diesem Package eine Komponente, nennen wir sie mal TAbgeleitet, die von einer Basisklasse, nennen wir sie mal TBasisklasse, abgeleitet ist. Die TBasisklasse befindet sich in einem anderen Package und ist bereits in der IDE registriert. Registriert wird diese Komponente (TAbgeleitet) mit diesem Aufruf:
Delphi-Quellcode:
Daraufhin erhalte ich dann diese Fehlermeldung beim der Installation in der IDE:RegisterComponents('Komponenten', [TAbgeleitet]);
Code:
Kommentiere ich diese Registrierungszeile aus dann wird das Package ohne Probleme in der IDE registriert (es enthält noch eine Reihe anderer Komponenten).
---------------------------
Fehler --------------------------- Registrierungsprozedur, dclMyPackage190.Register in Package dclMyPackage190.bpl hat die Exception-Klasse EFilerError: Klasse mit der Bezeichnung TBasisKlasse existiert bereits ausgelöst. --------------------------- OK --------------------------- In allen früheren Delphi-Versionen wurde diese Komponente immer anstandslos installiert. In DXE5 nicht. Hat jemand eine Idee, was die Ursache sein könnte? Danke schon mal, Ralf |
AW: Komponenteninstallation XE5 schlägt fehl
Kannst du das Problem auf einen einfachen Testfall (zwei Packages, zwei Klassen) reduzieren?
|
AW: Komponenteninstallation XE5 schlägt fehl
Das war eigntlich das nächste, was ich versuchen wollte (meistens findet man beim "runterbrechen" dann sowieso den einen oder anderen Hinweis :-)
Das seltsame ist eben, dass das selbe (bis auf den Unterschied "140" und "190" in den Packagenamen)Komponentenpackage auf anderen Delphi-Versionen problemlos installiert wird. Mal sehen, was da "runterbrechen" ergeben wird... |
AW: Komponenteninstallation XE5 schlägt fehl
Wie ich es mir schon gedacht hatte (oder befürchtet hatte) funktioniert natürlich das auf 2 Packages heruntergebrochene Beispiel ohne Probleme... :evil:
Jetzt muss ich iregndwie versuchen herauszufinden, was an der Klasse die sich nicht installieren lässt so besonderes ist... |
AW: Komponenteninstallation XE5 schlägt fehl
Ich hatte bisher einige solche Fälle, die wurden aber beim Öffnen des DPK nach Bestätigung eines entsrpechenden Hinweises durch Ergänzen der requires-Einträge immer automatsch korrigiert.
|
AW: Komponenteninstallation XE5 schlägt fehl
Zitat:
Die requires-Klauseln sind alle korrekt. Das Projekt wird schließlich seit Jahren von Delphi-Version zu Delphi-Version "weitergereicht". Nur die Versionsangaben sind natürlich angepasst worden. Außerdem bekäme man bei inkorrekter requires-Klausel schon beim kompilieren Fehler. |
AW: Komponenteninstallation XE5 schlägt fehl [gelöst]
Falls jemand mal ein ähnliches Problem hat:
Mittlerweile hat sich geklärt warum sich diese eine Komponente nicht installieren ließ. Die Komponente befand sich in einer Unit deren Unitname noch einmal in qualifizierter Form im Projekt enthalten war ("MeineUnit.pas" und "Spezial.Test.MeineUnit.pas"). In dieser zweiten Unit gibt es eine Klasse gleichen Namens. Diese zweite Unit wird nur in ganz bestimmten Fällen von einem ganz anderen Programmteil benutzt. In diesem Fall wird sie qualifiziert (kompletter Namespace) der Usesliste hinzugefügt. Delphi XE5 war nun so "freundlich" diesen Namespace zu der Liste "Unit-Gültigkeitsbereichsnamen" in den Projektoptionen hinzuzufügen. Als Folge davon wurde in das Projekt die Unit mit dem qualifizierten Namen und nicht die Unit ohne Qualifizierung eingebunden. Eine Löschung dieses Namesapces und eine gründliche Überprüfung aller Suchpfade (und deren Reihenfolgen) hat das Problem dann gelöst. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz