![]() |
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. |
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. |
AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
Zitat:
|
AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
Wow, tatsächlich. Wieder was gelernt :thumb:
|
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:
in der DPR auskommentieren / mit einem Compilerschalter entfernen und stattdessen eine alternative Resource einbinden,
{$R *.res}
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:
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.
{$RESOURCE}
|
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. |
AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
eine Variante für Icon+VersionsInfo siehe
![]() |
AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
Hallo,
sind für dieses Vorhaben denn nicht die ".opset"-Dateien gedacht? |
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. |
AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 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