![]() |
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...) ![]() 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? |
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:
bzw.
{$R
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. |
AW: Was ist <Delphi.Personality> in der Dproj Datei
Zitat:
|
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. |
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. |
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. |
AW: Was ist <Delphi.Personality> in der Dproj Datei
Zitat:
|
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! |
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. |
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. |
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