Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   [dcc32 Fatal Error] data.pas(11): F2051 Unit was compiled with a different version (https://www.delphipraxis.net/214561-%5Bdcc32-fatal-error%5D-data-pas-11-f2051-unit-compiled-different-version.html)

Rainer Wolff 30. Jan 2024 15:48

[dcc32 Fatal Error] data.pas(11): F2051 Unit was compiled with a different version
 
Die Meldung ist wahrscheinlich so alt wie Delphi selber, hat mich heute aber vollends zur Verzweiflung gebracht.

Ich wollte in meinem Projekt Spring-Persistence nachrüsten und habe deshalb die entsprechenden Units eingebunden. Daraufhin kam der Fehler:

Code:
[dcc32 Fatal Error] Spring.Persistence.Adapters.FieldCache.pas(105): F2051 Unit Spring.Persistence.Core.Base was compiled with a different version of Spring.Persistence.Adapters.FieldCache.TFieldCache
Inzwischen bin ich zu einem lauffähigen Projekt gekommen, indem ich ein neues, leeres Projekt generiert und alle Units in das Projekt übernommen habe.

Sämtliche Units sowie das *.dpr-File sind inzwischen komplett identisch, der einzige Unterschied ist das *.dproj file. Das *.dproj habe ich bereits (mehrfach) gelöscht und neu generieren lassen.

Der einzige Unterschied ist somit, daß ein *.dproj mit Projekt|Neu generiert wurde, die defekte *.dproj durch öffnen der *.dpr

Da inzwischen einige Stunden Suche draufgegangen sind, würde ich gerne kapieren, was da eigentlich schiefläuft??

peterbelow 30. Jan 2024 16:00

AW: [dcc32 Fatal Error] data.pas(11): F2051 Unit was compiled with a different versio
 
Den Fehler bekommt man, wenn der Compiler für eine in der Uses-Klausel aufgeführte Unit die Source (*.pas) nicht findet, aber dafür eine dcu, die aber mit einer anderen Delphi-Version erstellt wurde. Die Ursache ist normalerweise ein Fehler in den Pfadangaben in den Projektoptionen. Maßgeblich sind der Library-Pfad in den IDE Options und der Search-Pfad in den Projektoptionen. Und falls man eigene Makros in den Pfadangaben verwendet sollt man auch sicherstellen, das die zugehörigen IDE-internen environment variablen richtig gesetzt sind; besonders wenn man auf eine neue Delphi-Version migriert.

Rainer Wolff 31. Jan 2024 05:59

AW: [dcc32 Fatal Error] data.pas(11): F2051 Unit was compiled with a different versio
 
Dass bei der Fehlermeldung normalerweise Pfade nicht gefunden werden, oder falsche Dateien, ist mir schon klar. Normalerweise hilft an der Stelle meist auch, dem Projekt die angemeckerte(n) Datei(en) direkt einzubinden, dann wird der ganze Krempel mit compiliert, auch wenn irgendwo bereits die compilierte Bibliothek liegt.
Das hat in dem Fall aber nichts gebracht, wenn ich noch richtig weiss, hat er zum Schluss gemeckert, dass die Datei nicht compiliert werden kann, weil sie selbst schon in einer anderen Version vorhanden ist (kann ich nachher nochmal nachstellen)

Bei meinen beiden Varianten habe ich ja aber am Suchpfad oder IDE-Einstellungen letztlich nichts verändert, beides ist mit der selben IDE ohne Einstellungsänderungen entstanden.

Einmal, wie gesagt, über Projekt|Neu|VCL-Projekt, ein neues Projekt erstellt, und dann alle Units dort eingebunden, damit funktioniert es.
Einmal *.dproj gelöscht und neu erzeugen lassen, damit geht es nicht.

jaenicke 31. Jan 2024 06:08

AW: [dcc32 Fatal Error] data.pas(11): F2051 Unit was compiled with a different versio
 
Dann vergleiche doch einfach die .dproj Dateien.

Rainer Wolff 31. Jan 2024 07:27

AW: [dcc32 Fatal Error] data.pas(11): F2051 Unit was compiled with a different versio
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von jaenicke (Beitrag 1532811)
Dann vergleiche doch einfach die .dproj Dateien.

Einfach ist gut, die haben so viel Ähnlichkeiten wie die Mücke mit dem Elefanten (gelb=Differenzen, grau fehlt).

Kas Ob. 31. Jan 2024 07:35

AW: [dcc32 Fatal Error] data.pas(11): F2051 Unit was compiled with a different versio
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anhang 56606

Rainer Wolff 31. Jan 2024 07:42

AW: [dcc32 Fatal Error] data.pas(11): F2051 Unit was compiled with a different versio
 
Die *.dproj ist es auch nicht. Ich habe die funktionierende dproj in das nicht funktionierende Projekt gesteckt, ging trotzdem nicht.
Daraufhin die compilierten Spring4d-Units aus dem dcu des funtionierenden Projekts in das nicht funktionierende Projekt gesteckt, damit geht es.

Erst mal danke für die Hilfe, wenn ich eine Ursache finde, werde ich es mitteilen.
Jetzt stehen erst mal die tatsächlichen Probleme in dem Projekt zur Lösung an (weswegen ich überhaupt drangefasst habe).

jaenicke 31. Jan 2024 08:42

AW: [dcc32 Fatal Error] data.pas(11): F2051 Unit was compiled with a different versio
 
Zitat:

Zitat von Rainer Wolff (Beitrag 1532815)
Daraufhin die compilierten Spring4d-Units aus dem dcu des funtionierenden Projekts in das nicht funktionierende Projekt gesteckt, damit geht es.

Dann wurde die Unit Spring.Persistence.Adapters.FieldCache neu kompiliert, die Unit Spring.Persistence.Core.Base aber aus dem DCU-Verzeichnis genommen. Wenn da noch DCUs liegen, obwohl die Quelltexte der Sammsung teilweise erreichbar sind, kann das nicht gutgehen.

Rollo62 31. Jan 2024 09:20

AW: [dcc32 Fatal Error] data.pas(11): F2051 Unit was compiled with a different versio
 
Nur zur Info. Ich hatte mit einem Projekt ähnliches, obwohl ich immer nur Sourcen einbinde und keine vorkompilierten Files.
Hab es mit einbinden der entsprechenden Units gehackt weil keine Zeit zum forschen.
Ich meine aber auch ziemlich sicher, dass sich da etwas geändert hat, zu den alten Versionen.


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