Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Was ist <Delphi.Personality> in der Dproj Datei (https://www.delphipraxis.net/215365-ist-delphi-personality-der-dproj-datei.html)

QuickAndDirty 20. Jun 2024 15:58


Was ist <Delphi.Personality> in der Dproj Datei
 
Hallo
in manchen *.dproj Dateien

gibt es einen <Delphi.Personality> tree.
Wie zum beispiel in dieser hier(nicht meine Datei oder Website sondern ein Internet Fund...)
https://www.formatika.de/print.jsp?c....7/Autor.dproj

Wozu ist der da?

Mich interessiert vor allem alles Versions bezogene.
Also innerhalb dieses Trees
<VersionInfo>
und
<VersionInfoKeys Name="FileVersion">0.7.5.1</VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">0.75</VersionInfoKeys>


Kann ich und sollte ich diese Einträge ändern damit sie auf dem selben stand sind wie die Anderen Versionsnummern Einträge des Projekts?

himitsu 20. Jun 2024 16:01

AW: Was ist <Delphi.Personality> in der Dproj Datei
 
Personality = verschiedene "Module" in der IDE
z.B. Delphi (was deinem Beispiel entspricht) oder C++Builder

entspricht auch dem StartParameter -p ala
Delphi-Quellcode:
bds -pDelphi
,
welches nur die Delphi-Personality lädt, aber nicht den C++Builder (falls installiert)
siehe cmd:
Delphi-Quellcode:
bds -?



Betrifft dich, wenn du das RAD-Studio benutzt, wo Delphi und C++Builder enthalten sind
oder bei Fremdkomponenten (ich glaub z.B. TMSWebCore)




Im BeforeCompile wird diese VersionsInfo aus DPROJ in die VersionRessource in der Projekt-RES synchronisiert.

Wir haben einfach die Versions-Ressource in den Projektionen deaktiviert (entfernt),
erstellen unsere eigene Ressource als *.RC, lassen sie zu einer *.RES kompilieren
und binden sie dann selber in unsere DPK/DPR ein (
Delphi-Quellcode:
{$R
bzw.
Delphi-Quellcode:
{$RESOURCE
)

Es gibt hier und da auch Projekte, um z.B. via Parameter an eine Consolen-Anwendung die Versionsinfos in der EXE/DLL/BPL (post-compile) oder RES/DPROJ (pre-compile) ändern zu können.

Uwe Raabe 20. Jun 2024 16:45

AW: Was ist <Delphi.Personality> in der Dproj Datei
 
Zitat:

Zitat von himitsu (Beitrag 1538034)
Im BeforeCompile wird diese VersionsInfo aus DPROJ in die VersionRessource in der Projekt-RES synchronisiert.

Ich glaube nicht, dass das so stimmt. Die Werte dort haben rein gar nichts mit denen im Versionsinfo-Dialog oder im Compilat zu tun. Wenn man die beiden Zweige <VersionInfo> und <VersionInfoKey> löscht ändert sich auch nichts. Bei einem neuen Projekt tauchen sie (zumindest in D12) gar nicht erst auf. Vermutlich sind das Überbleibsel aus einer älteren Delphi-Version.

himitsu 20. Jun 2024 17:30

AW: Was ist <Delphi.Personality> in der Dproj Datei
 
Direkt BeforeCompile ist es natürlich ist,
aber es kommt jedenfalls in den Actions des MSBuild-Scripts, welche vor dem Compilieren (DCC) ausgeführt werden.

Ja, wenn du alles in der DPROJ löschst, dann wird nicht automatosch die Ressource gelöscht ... das passiert nur, wenn
Delphi-Quellcode:
<VerInfo_IncludeVerInfo>false</VerInfo_IncludeVerInfo>


Hmmm, kann auch sein, dass es was für den Editor ist. :gruebel:
Delphi-Quellcode:
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>

Das Letzte der aktiven Node-Groups davon düfte wohl verwendet werden.

Blöd ist aber auch, dass die Synchronisation auch andersrum geht.
Findet die IDE beim Laden die Ressource in der RES, dann wird in der DPROJ der Knoten eingefügt und auf True gestellt. (nur im Editor, aber nicht beim Kompilieren im MSBuild ... dort erst, nach dem nächsten Speichern in der IDE)
Wir hatten ein selten bearbeitet Modul, wo sich ab un an die Version vom Delphi wieder aktivierte und der Linker dann später wegen der doppelten Ressource rumnörgelte, weil sich durch einen Mergefehler eine alte RES wieder einschlich.

QuickAndDirty 21. Jun 2024 10:46

AW: Was ist <Delphi.Personality> in der Dproj Datei
 
Die VersionsInfo in den <PropertyGroups> im <VerInfo_Keys> Tag mit der CVS setzte ich bereits (FileVersion ProductVersion)

Was mich halt Beschäftigt sind die Versions einträge in dem <Delphi.Personality> tree. Vor allem da alle meine neuen Projekte den Tree gar nicht haben.

Ist es ein problem wenn ich die Synchron setze? Oder ist das nicht eine Projekt version sonder die Version von Delphi?
Ist das wenn die VersionsInfo für C++ und Delphi abweicht gedacht ? wobei wir wirklich nur Delphi entwickeln.

himitsu 21. Jun 2024 11:07

AW: Was ist <Delphi.Personality> in der Dproj Datei
 
Vielleicht sind das einfach nur alte Einträge alter Delphi-Versionen, welche es beim Migrieren der Projektdatei mitgenommen hat?

Früher gab es mal nur eine VersionInfo in der DPROJ (eventuell dieses im <Delphi.Personality>), jetzt kann man für unterschiedliche Configs/Platformen Unterschiedliche haben (ein bzw. mehrere <VerInfo_Keys> in unterschiedlichen Configs)

Hier am Besten drauf achten, dass man beim Ändern in der IDE immer zuerst auf Alle-Alle umstellt, da es sonst passieren kann, das die sich "gefühlt" nahezu unkontrollierbar gegenseitig überschreiben und nicht das in der EXE landet, was dort rein soll.

Uwe Raabe 21. Jun 2024 11:20

AW: Was ist <Delphi.Personality> in der Dproj Datei
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1538076)
Was mich halt Beschäftigt sind die Versions einträge in dem <Delphi.Personality> tree. Vor allem da alle meine neuen Projekte den Tree gar nicht haben.

Du kannst die bedenkenlos löschen. Die stammen vermutlich noch aus Delphi 2007 oder so.

QuickAndDirty 21. Jun 2024 12:20

AW: Was ist <Delphi.Personality> in der Dproj Datei
 
Genau da sind die drinn!
Wir portieren gerade alles von D2007 auf Delphi XE n.m

Ok also sind das einfach legacy Einträge in der DProj Datei?

Na toll , dann also am besten ignorieren...

Vielen Dank!

himitsu 21. Jun 2024 12:24

AW: Was ist <Delphi.Personality> in der Dproj Datei
 
Wir von D7 zu XE (OK, dort wurden die DPROJ sowieso neu generiert),
aber auch von XE zu D10 D11 ...

Am Besten bei solchen großen Sprüngen (oder generell immer) die DPROJ neu generieren (und leider komplett neu eintichten) und möglichst nicht migrieren.

QuickAndDirty 21. Jun 2024 12:47

AW: Was ist <Delphi.Personality> in der Dproj Datei
 
Es hat ziemlich gut geklapt, aber wir wollen jetzt das alle Exen die zusammenarbeiten auch immer dieselbe versionsnummer haben...dafür dieses tool.

btw.
Muss ich XPathQueries lange aus Internetquellen lernen oder kann man das recht schnell verstehen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:17 Uhr.
Seite 1 von 2  1 2      

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