Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Versionsnummern in der .RES Datei ändern (https://www.delphipraxis.net/207697-versionsnummern-der-res-datei-aendern.html)

mlc42 23. Apr 2021 14:49

Versionsnummern in der .RES Datei ändern
 
Ich muss für einige Programme die Versionsnummern immer von Hand ändern.
In einem automatische Prozess weden dann alle EXE Dateien erzeugt.
Die Versionummern die man in den Projektoptionen einstellen kann sind wohl
in den .res Dateien gespeichert. Kennt jemand einen Weg diese in der .res zu
ändern. Ich hab schon ne Weile versucht herauszu bekommen wie man das mit
BeginUpdateResource etc. macht. Scheiter jedoch schon beim Aufruf der Funktion

if FileExists(fn) then begin
h := BeginUpdateResource(PChar(fn), False);

bei h kommt immer 0 zurück

Delphi2007
fn ist als string deklariert.

Incocnito 23. Apr 2021 15:07

AW: Versionsnummern in der .RES Datei ändern
 
Kannst du nicht besser die DPROJ bearbeiten (dort steht die Version auch drin)
und die Datei mit msbuild generieren lassen?
Ich glaube ich habe nur das Icon damals einmalig mit einem Ressourcen-Editor in eine Res-Datei geschrieben.

Ich hoffe die Info hilft dir schon weiter.
Hier gibt es sicher auch Einträge, wie man mit msbuild Delphi-Projekte erzeugen lassen kann.
Spontan kriege ich das jetzt nicht mehr zusammen.

Mit freundlichem Gruß
Incocnito

Bernhard Geyer 23. Apr 2021 16:18

AW: Versionsnummern in der .RES Datei ändern
 
Hat den D2007 schon dproj-Dateien?
Ist ja schon ziemlich alt

Uwe Raabe 23. Apr 2021 16:32

AW: Versionsnummern in der .RES Datei ändern
 
Ja, aber ich weiß nicht, ob die schon MSBuild-geeignet sind. Zu D2007-Zeiten haben wir unsere Versionsnummern immer per FinalBuilder in die EXE gepackt.

Delphi.Narium 23. Apr 2021 16:38

AW: Versionsnummern in der .RES Datei ändern
 
Und wie wäre es damit?

https://stackoverflow.com/questions/...om-commandline

Dann reicht ein banaler Texteditor zur Änderung.

mlc42 23. Apr 2021 19:18

AW: Versionsnummern in der .RES Datei ändern
 
Ja das mit der dproj hatte ich als erstes probiert, nur leider kommt das nicht in der
exe an. Deshalb habe ich dann weiter gesucht und mit einem Resourceeditor gesehen das
das in der .res steht. Wenn man das dann mit dem Resourceditor ändert sieht man es anschließend
in den Projektoptionen in Delphi. Das wäre mir die liebste Variante aber scheint wohl nicht
ganz trivial zu sein. Das mit der eigenen Resourcendatei wäre ein Möglichkeit.

Auf der Emba Seite habe ich auch ein Beispiel gefunden wo das nur in der dproj geändert
wird. Ich muss mal ausprobieren ob das bei XE klappt.

Stevie 23. Apr 2021 21:49

AW: Versionsnummern in der .RES Datei ändern
 
Wie es in der SO Antwort steht, funktioniert auf jeden Fall, mach ich bei meinen Plugins so.
Dazu einfach wie dort auch erwähnt
Delphi-Quellcode:
{$R 'version.res' 'version.rc'}
in die dpr schreiben.

himitsu 26. Apr 2021 15:37

AW: Versionsnummern in der .RES Datei ändern
 
kannst auch mal im forum suchen ... irgendwo hatte ich es mehrfach in threads genannt.

im Prinzip erstellt der FinalBuilder (geht aber auch jede ScriptSprace) aus einer Vorlage eine .RC wo die Versionsressource eingebaut/ersetzt wird. (die Versionsressource in den Delphi-Projektoptionen ist deaktiviert, aber die Warnung der Compiler-Hinweis bezüglich doppelter Ressource warnt einen schon, falls doch mal doppelt)

dann wird brcc32.exe oder RC.exe (aus'm windows framework) benutzt, um daraus die .RES zu generieren,
welche dann über {$R ...} oder {$RESOURCE ...} in die DPR/DPK eingebunden wird.


Man kann von Delphi eine .RC auch automatisch in eine .RES kompilieren lassen,
aber {$R} mit zwei Parametern funktioniert nur in der DPR (vielleicht auch noch in der DPK) und wenn es doch nicht ging, dann gibt der Compiler/Linker oftmals keine Warnung aus, drum kompiliere ich das lieber selber und werte den ExitCode der RessourcenCompilers aus.


direkt die Versions-Ressource des Compilates nachträglich zu bearbeiten, ist oft meistens garnicht nötig
und es gibt da wesentlich flexiblere und bessere Möglichkeiten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz