Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei linken? (https://www.delphipraxis.net/182857-wie-mittels-bedingter-compilierung-andere-versionsinformationen-exe-datei-linken.html)

devidespe 21. Nov 2014 18:30

Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei linken?
 
Hallo,

in den Projektoptionen meiner XE-Delphi-Applikation gibt es ja die Kategorie "Versionsinformationen", die z.B. den Firmennamen, Produktnamen, die Version und das Copyright enthält. Diese Daten werden mit der Compilierung in die Exe-Datei gelinkt.

Nun habe ich das Problem, mittels eines Compilerschalters für bedingte Compilierung, diese Daten modifiziert in die Exe-Datei linken zu müssen. Das betrifft z.B. einen anderen Firmen- und Produktnamen.

Kann ich direkt aus dem Quellcode auf diese Felder zugreifen, oder muss ich über Ressourcen-Dateien gehen, wo ich dann bei einem bestimmten Compilerflag der bedingten Compilierung eine andere Ressourcendatei in der DPR-Datei einbinde?

Danke für Eure Antworten.

Der schöne Günther 21. Nov 2014 18:37

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
 
Könntest du nicht einfach eine (bzw. zwei) weitere Build-Konfigurationen erstellen?

Benenne Release und Release_Firma1 (analog Debug) um und lege eine (zwei) neue an: Release_Firma2 und du kannst in der IDE weiterhin alles einstellen wie man es gewohnt ist.

Sir Rufo 21. Nov 2014 18:42

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1280681)
Könntest du nicht einfach eine (bzw. zwei) weitere Build-Konfigurationen erstellen?

Benenne Release und Release_Firma1 (analog Debug) um und lege eine (zwei) neue an: Release_Firma2 und du kannst in der IDE weiterhin alles einstellen wie man es gewohnt ist.

Vererben geht auch, indem man diese Einträge als Unterpunkte von release/debug anlegt. Hängt aber stark davon ab, was man damit erreichen will.

Der schöne Günther 21. Nov 2014 18:44

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
 
Wow, tatsächlich. Wieder was gelernt :thumb:

himitsu 21. Nov 2014 19:02

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
 
Und nur um noch die andere Variante zu nennen:

Man könnte das
Delphi-Quellcode:
{$R *.res}
in der DPR auskommentieren / mit einem Compilerschalter entfernen und stattdessen eine alternative Resource einbinden,
aber das ist etwas blöde, denn diese Resource enthält nicht nur die Versions-Resource, sondern auch das Manifest und das Application-Icon.
Die Versions-Resource in den Projektoptionen deaktivieren und und nun seine eigene Resource einbinden geht also besser.

Hier kann man nun beliebig die verschiedensten Resourcen einbinden.

PS: In den Projektoptionen kann man hier ebenfalls eigene Compilerschalter definieren (DEFINEs's für IFDEF).


Da
Delphi-Quellcode:
{$R}
/
Delphi-Quellcode:
{$RESOURCE}
sogar direkt vom Compiler aus einer RC die RES generieren kann, indem das jeweils durch den Resourcencompiler gejagt wird, kann man sogar aus einer extern befüllbaren Textdatei (*.RC) die Versions-Resource erstellen.

devidespe 30. Dez 2014 12:09

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
 
@himitsu: Das wäre eine aus meiner Sicht effektive Methode für das Einbinden von Ressourcen und wäre für meine Situation vielleicht noch besser, da basierend auf einem bedingten Compilerschalter unterschiedliche Versionsinformationen, Manifeste und Icons integriert werden müssen.

Wenn ich die Versionsinformationen in den Projektoptionen also deaktivierte, könnte und muss ich alles in einer Res-Datei bereitstellen.

Nun stellt sich die Frage, wie ich das alles in einer Res-Datei integrieren kann? Spontan hätte ich eine RC-Datei erstellt, welche die Ressourcen enthält und mit brc32.exe bzw. brcc32.exe (was auch immer der Unterschied beider Programme sein mag) zur Res-Datei compiliert wird. Das habe ich fürs Manifest schon erfolgreich hinter mir.

Aber wie trage ich das Icon und die Versions-Datei dort ein und vor allem, in welchem Format müssen die Versionsinformationen vorliegen? Gibt es da eine Vorlage? Danke für die Hilfe.

himitsu 30. Dez 2014 12:19

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
 
eine Variante für Icon+VersionsInfo siehe Hier im Forum suchenManifest-Creator

mm1256 30. Dez 2014 13:09

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
 
Hallo,

sind für dieses Vorhaben denn nicht die ".opset"-Dateien gedacht?

Bernhard Geyer 30. Dez 2014 15:15

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
 
Opset? Ich denke das kann man mitterweile auch direkt im dproj-File über eine neue "Ableitung" definieren um dann dort einfach die Versionsinfos passsend zu setzen.
Und Compilerdefines sind dort auch easy zu setzen.

Sir Rufo 31. Dez 2014 00:56

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
 
Zitat:

Zitat von mm1256 (Beitrag 1284982)
Hallo,

sind für dieses Vorhaben denn nicht die ".opset"-Dateien gedacht?

Mit einer Optionstruppe ("*.optset"-Datei) kann man allerdings nicht die VersionsInfo setzen.


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