![]() |
Seltsame Auffälle bei der Versionsinfo-Funktion
Moin,
ich benutze Delphi 10.1 (Berlin) unter Win 7 32bit. Natürlich sollte jedes ernsthafte Programm heutzutage eine Programmversion anzeigen. In den Foren schwirrt es je von Funktionen, das ist nicht das Problem. Nun kommt es aber zu zufälligen "Aussetzern" dieser Funktion. Szenario : Ich setze die Versionsnummer auf 1.2.3.4 in den Optionen, lasse einkompilieren, klappt. Auch im Eigenschaftsdialog des Explorers (Alt-Enter) wird die richtige Version angezeigt. Ein paar Tage später erhöhe ich auf z. Bsp. 1.2.3.6, kompiliere etc. JETZT zeigt die nutzerdefinierte Funktion (s.u.) immer noch 1.2.3.4 an, und dabei bleibt es auch. Der Eigenschaftsdialog zeigt die erhöhte Version 1.2.3.6 an. Nach etlichen Tagen und vor ellam Compilerläufen wird die Versionsnummer plötzlich wieder aktualisiert, für eine Weile ... GOTO Anfang... Das ist sehr ärgerlich, weil ich das nicht zum Spaß sondern beruflich mache. Könnte es an Delphi liegen ? Und hier die Funktion, auch aus der DP:
Delphi-Quellcode:
Gruß ism
function GCVer: String;
var VerInfoSize: DWORD; VerInfo: Pointer; VerValueSize: DWORD; VerValue: PVSFixedFileInfo; Dummy: DWORD; begin VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy); GetMem(VerInfo, VerInfoSize); GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo); VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize); with VerValue^ do begin Result := 'Version '+IntToStr(dwFileVersionMS shr 16); Result := Result + '.' + IntToStr(dwFileVersionMS and $FFFF); Result := Result + '.' + IntToStr(dwFileVersionLS shr 16); Result := Result + '.' + IntToStr(dwFileVersionLS and $FFFF); end; FreeMem(VerInfo, VerInfoSize); end; |
AW: Seltsame Auffälle bei der Versionsinfo-Funktion
Versuch mal aus
Delphi-Quellcode:
GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
folgendes zu machen
Delphi-Quellcode:
GetFileVersionInfo(PChar(ParamStr(0)), Dummy, VerInfoSize, VerInfo);
|
AW: Seltsame Auffälle bei der Versionsinfo-Funktion
Eventuell hat der Explorer noch die alte Version im Cache.
|
AW: Seltsame Auffälle bei der Versionsinfo-Funktion
Für Version setzen nutzen wir DDevExtensions um nicht mit den "sehr umfangreichen" getrennten Versioneinstellungen für Release/Debug/32/64-Bit erschlagen zu werden.
Haben hier bei 10.2 seit der Nutzung 0% damit. |
AW: Seltsame Auffälle bei der Versionsinfo-Funktion
Zitat:
Grüße Klaus |
AW: Seltsame Auffälle bei der Versionsinfo-Funktion
So isses.
ism |
AW: Seltsame Auffälle bei der Versionsinfo-Funktion
Zitat:
|
AW: Seltsame Auffälle bei der Versionsinfo-Funktion
Die Variante mit paramstr(0) habe ich auch proboert,
sie erspart einem ja das
Delphi-Quellcode:
Identisches Verhalten.
Application.Exename
ism |
AW: Seltsame Auffälle bei der Versionsinfo-Funktion
Da gibt es zwei typische Verwechslungsmöglichkeiten:
* Es gibt (in der Versionresource) eine FileVersion und eine ProductVersion. * Es gibt sowohl numerische als auch Textfelder für die Version. Vielleicht hilft ja ein Blick mit ResHacker o.ä. in die Versionsresource in der Datei, um zu identifieren, welches Feld genau hinterherhinken könnte. |
AW: Seltsame Auffälle bei der Versionsinfo-Funktion
Schau dir mal die Funktion GetFileVersion aus System.SysUtils an. Die liefert zwar nur den höherwertigen Part, sollte aber problemlos anpassbar sein.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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