![]() |
Tokyo Update 3 identifizieren
Halli Hallo,
Gibt es eigentlich eine Möglichkeit irgendwie per IFDEF festzustellen ob von Delphi Tokyo das Update 2 oder schon das Update 3 installiert ist? Ich habe bisher keine unterschiedlichen DEFINES für diese 2 Versionen gefunden aber das Update 3 führt einige neue Klassen ein, weshalb auf Arbeitsplätzen die nur Update 2 installiert haben das kompilieren fehlschlagen würde. Danke schon mal, Ralf |
AW: Tokyo Update 3 identifizieren
![]() Leider ist "VER320" für "Delphi 10.2 Tokyo / C++Builder 10.2 Tokyo" das letzte. edit Vielleicht über die RTL Value? |
AW: Tokyo Update 3 identifizieren
Der Compiler ist ja auch der selbe. Besser wäre es nach der Version der RTL oder der UI-Bibliothek zu entscheiden.
Die RTLVersion von Tokyo Update 3 ist 32. Bin mir aber nicht sicher ob diese nicht auch die Version der Vorgänger 10.2er war. |
AW: Tokyo Update 3 identifizieren
Im Prinzip müssten die Updates eine eigene Versionsnummer bekommen, da man ja seit 'ner Weile die "Updates" nicht mehr für Bugfixes, sondern auch für neue Features (Upgrades) nutzt.
VER320 = 10.2 VER321 = 10.2.2 VER322 = 10.2.3 ... Bleibt nur noch, dass du nicht nur auf Versionsnummer, sondern auf das Vorhandensein/Nichtvorhandensein von Funkionen/Klassen/Typen/Variablen/Konstanten prüfst, welche sich bei dem Update geändert hatten. Aber prinzipiell ist es eh besser auf Features zu prüfen, anstatt auf Versionen. RTLVersion und VCLVersion gibt es theoretisch, aber die waren bis jetzt immer identisch mit der CompilerVersion. FMXVersion und Versionen für andere Programmteile gibt es garnicht. |
AW: Tokyo Update 3 identifizieren
Zumindest in der Tabelle die im DocWiki die ganzen Versionen auflistet wird nicht zwischen Update 2 und Update 3 unterschieden. :cry:
|
AW: Tokyo Update 3 identifizieren
Als Konstante: FMX.Types.FireMonkeyVersion
|
AW: Tokyo Update 3 identifizieren
Zitat:
Delphi-Quellcode:
prüfen.
{$IF Declared(TMyNewCLass)}
|
AW: Tokyo Update 3 identifizieren
Zitat:
Da gibt es (Update 2) einmal die Liste aller Mimetypes als Array in einer Konstanten. In Update 3 gibt es dieses Array nicht mehr, dafür existiert eine Klasse TMimeTypes die diese Daten als Dictionary verwaltet. Ich habe keinen Schimmer, wie ich diese beiden Versionen beim kompilieren über IFDEF oder so auseinander halten soll. Die einzige Idee die ich habe ist es die neuere Unit erst einmal lokal in das Projektverzeichnis zu kopieren und ins Projekt aufzunehmen. So würden auch ältere Compiler die neue Unit verwenden (ich mag diese Lösung aber gar nicht...) |
AW: Tokyo Update 3 identifizieren
Wie schon erwähnt, siehe der Post über dir.
Delphi-Quellcode:
1 und 3 sind von der Bedingung her zukunftssicherer.
{$IF Declared(TMimeTypes)}
{$IF Defined(VER320) and Declared(TMimeTypes)} {$IF (CompilerVersion >= 32.0) and Declared(TMimeTypes)} Zitat:
Hatte vor 2-3 Jahren mal gesucht, aber nichts gefunden. Oder Emba führt endlich mal die Versionen besser. z.B.: VER320 und VER323 und CompilerVersion=32.3 für ein Update. |
AW: Tokyo Update 3 identifizieren
Zitat:
|
AW: Tokyo Update 3 identifizieren
Zitat:
|
AW: Tokyo Update 3 identifizieren
Zitat:
|
AW: Tokyo Update 3 identifizieren
Zitat:
|
AW: Tokyo Update 3 identifizieren
Zitat:
Zitat:
|
AW: Tokyo Update 3 identifizieren
Zitat:
Zitat:
Bis uns dann die Idee kam nachzufragen wer denn diese Exe compiliert hatte. Und CI ging damals nicht. Der Build unter Jenkins mit der D6-Exe hatte immer defekte Exe produziert ... |
AW: Tokyo Update 3 identifizieren
Könnte man eventuell das Update 3 mittels der ProjectVersion Angabe in der .dproj Datei ermitteln?
Bei Tokyo 10.2.3 steht da eine 18.4 eingetragen. edit neues Wissen Delphi 10.2 Tokyo hat 18.2 da eingetragen, also könnte das ein guter Ansatz sein. |
AW: Tokyo Update 3 identifizieren
Zitat:
Es ging darum beim kompilieren zu unterscheiden welche Version aktuell vorliegt, z.B per IFDEF und das geht mit dem Vorschlag von Stevie sehr gut. |
AW: Tokyo Update 3 identifizieren
nur Stevie?
:cry: |
AW: Tokyo Update 3 identifizieren
Kann man die ProjectVersion Angabe also gar nicht auswerten? Das ist ja blöd, falls es Überhaupt der Richtige Weg gewesen wäre.
|
AW: Tokyo Update 3 identifizieren
Nicht im Quellcode (IFDEF und Co.), aber den Quellcode interessiert es ja eigentlich auch nicht wie die IDE das Projekt verwaltet/speichert.
Das Problem ist einfach, dass die Updates nicht mehr in der CompilerVersion enthalten sind. VERxxx und CompilerVerison (IMHO sollten hier auch alle Updates und besser auch Hotfixes gezählt werden) RTLVersion (und dieses Problem hier würde auf jene Version gehen, aber ich hab noch nie erlebt, dass sie sich von der CompilerVersion unterscheiden) VCLVersion FireMonkeyVersion |
AW: Tokyo Update 3 identifizieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:50 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