Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Ungültige VersionsInfo in DProj seit Delphi XE2 (https://www.delphipraxis.net/165583-ungueltige-versionsinfo-dproj-seit-delphi-xe2.html)

Christoph Schneider 6. Jan 2012 18:01

Ungültige VersionsInfo in DProj seit Delphi XE2
 
Ich bin am Mirgrieren meines Projekts von XE auf XE2 und habe ein Problem mit meinem selbst gestrickten Builder.
Bis anhin las ich vor dem Bilden die Product-Version aus dem DPROJ-XML-File mit folgender XPath-Klausel:
Code:
Project/ProjectExtensions/BorlandProject/Delphi.Personality/VersionInfoKeys/VersionInfoKeys[@Name="ProductVersion"]
Seit XE2 scheint diese VersionInfoKeys zwar noch vorhanden zu sein, wird bei Änderungen aber nicht mehr aktualisiert.
Ich nehme an, XE2 holt neu die Informationen neu direkt aus dem Projekt.res-File. Hat jemand eine Idee, wie man einfach wieder an diese Versions-Infos gelangt?

Danke für gute Tips!
Christoph

himitsu 6. Jan 2012 18:38

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Indem du die RES ausliest? (irgendwo in der DP wurde letztes Jahr dieses besprochen)

Oder die EXE auslesen (dazu findet man noch mehr)

Uwe Raabe 6. Jan 2012 18:44

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
XE2 verwendet eine Vererbungshierarchie der VersionsInfo innerhalb der Build-Konfigurationen. Daher ist die Versionsinfo abhängig von der gewählten Build-Konfiguration. Folglich hat sich auch der Zugriffspfad entsprechend geändert bzw. ist nicht mehr statisch.

Christoph Schneider 6. Jan 2012 20:30

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Dass die Konfiguration neu noch mehr vererbt wird, ist mir klar. Neue (geänderte)Versionsinformationen finde ich aber niergends mehr im XML Tree.
Weiss jemand, ob dies eine gewollte Projektfile-Umstellung ist, oder ob dies mit einem Update später wieder geändert wird? Das Res-file auszuwerten scheint mir etwas aufwenig. Das Exe habe ich zum Zeitpunt, wo ich diese Info benötige, noch nicht kompiliert.

USchuster 6. Jan 2012 21:55

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Zitat:

Zitat von Christoph Schneider (Beitrag 1144731)
Dass die Konfiguration neu noch mehr vererbt wird, ist mir klar. Neue (geänderte)Versionsinformationen finde ich aber niergends mehr im XML Tree.

Code:
         <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>

Zitat:

Zitat von Christoph Schneider (Beitrag 1144731)
Weiss jemand, ob dies eine gewollte Projektfile-Umstellung ist, oder ob dies mit einem Update später wieder geändert wird? Das Res-file auszuwerten scheint mir etwas aufwenig. Das Exe habe ich zum Zeitpunt, wo ich diese Info benötige, noch nicht kompiliert.

Gelesen habe ich nichts diesbezüglich, jedoch gehe ich nicht davon aus das sich an der Speicherung noch der Vererbung etwas ändert in Bezug auf die Versionsinfo.

Uwe Raabe 6. Jan 2012 22:32

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Ich verwende nur eine einzige Einstellung für die VersionsInfo in "Alle Konfigurationen", welche in der dproj unter "<Project...><PropertyGroup Condition="'$(Base)'!=''"><VerInfo_Keys>" (und ähnliche) zu finden ist.

Wenn man allerdings ein Projekt von einer älteren Version hochzieht, muss man die überflüssigen Einträge in den anderen Konfigurationen erst manuell entfernen.

Christoph Schneider 13. Jan 2012 17:56

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Besten Dank für die hilfreichen Tips! Die Versions-Info befinden auch in meinem Projekt neu unter
Code:
Project/PropertyGroup[@Condition ="''$(Base)''!=''''"]/VerInfo_Keys
und bei Veränderungen der abgleiteten Konfigurationen unter dem entsprechenden Konfigurationsnamen.

Verwirrend finde ich, dass bei nicht nur bei migrierten sondern auch bei neu erstellten Projekten der alte Pfad
Code:
Project/ProjectExtensions/BorlandProject/Delphi.Personality/VersionInfoKeys/VersionInfoKeys[@Name="ProductVersion"]
immer noch ins XML-Projekt-File eingefügt wird.

Insider2004 13. Jan 2012 18:31

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Ich habe die ganzen Probleme umgangen, indem ich alle Files einfach lösche. Bei mir ist nur die .dpr relevant. Den Rest betrachte ich als Microsoft-XML-MSBuild-Schrott. Also weg damit!

AliNehring 3. Jul 2013 16:22

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Ich verwende XE4, das Projekt ist aus einem alten Delphi5-Projekt konvertiert
Ich versuche, die Versionsinforationen zu ändern (z.B. von Datei- und Produktversion von 1.4.0.0 auf 1.5.0.0).
Ich habe die Empfehlung, aus der dproj-Datei die Versionsinformationen für verschiedene Konfigurationen zu löschen, befolgt.
In den Projekteigenschaften sehen alle Versionsinformationen richtig aus
Nach dem Erzeugen der DLL steht in der DLL eine alte Versionsinformation
In der RES-Datei finde ich die alte Versionsinformation
Auch wenn ich die RES-Datei lösche, wird eine neue mit der falschen Versionsinformation wieder erzeugt.
In der dproj-Datei stehen definitiv nirgends die falschen Versionsinformationen

Was kann ich tun ?

RWarnecke 3. Jul 2013 16:33

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Ich würde die Projektdatei in XE4 komplett neu erstellen und dieser neu erstellten Projektdatei die entsprechenden Units hinzufügen für die DLL. Dann noch in den Projektoptionen die entsprechenden Versionsinformationen eintragen und alle alten DCU-Dateien löschen. Danach das Projekt komplett neu erstellen und Du solltest die richtigen Versionsinformationen in der DLL angezeigt bekommen.

AliNehring 3. Jul 2013 17:36

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Danke, das hatte ich auch schon angefangen.
Jedoch bekomme ich nun Fehlermeldungen, weil z.B: die Unit Forms fehlt. Auch, wenn ich <FrameworkType>VCL</FrameworkType> in meiner dproj-Datei eintrage. Bleiben diese Fehler.
Wie kann ich aus einem neu erstellten DLL-Projekt ein VCL-Projekt machen ?

RWarnecke 3. Jul 2013 18:08

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Hä, was willst Du ? Hast Du jetzt eine Delphi 5 DLL-Projektdatei oder eine VCL-Projektdatei ?

AliNehring 4. Jul 2013 08:16

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Es war ein Delphi5-Projekt, das die Unit Windows und Forms verwendet hatte.
Nachdem dieses beim Öffnen in XE4 nach XE4 konvertiert wurde, fand ich in der dproj-Datei den Eintrag <FrameworkType>VCL</FrameworkType>
Es ließ sich Compilieren, jedoch mit Chaos in der Versionsverwaltung
Dann habe ich ein DLL-Projekt neu angelegt. Dieses hatte stattdessen <FrameworkType>None</FrameworkType>
So bin ich auf VCL-Projekt gekommen.
Im neuen Projekt kann ich die Units Windows und Forms offenbar nicht verwenden.

Uwe Raabe 4. Jul 2013 08:36

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Wenn du noch nicht qualifizierte Unit-Namen wie Windows oder Forms verwendest, musst du die Unit-Gültigkeitsbereichsnamen setzen.

jaenicke 4. Jul 2013 09:32

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Stell einfach das Framework nicht selbst um, sondern lass alles wie es ist (auf None) und erstelle ein neues VCL-Formular. Dann sollte dich Delphi fragen, ob VCL als Framework eingestellt werden soll, dann sollte auch alles richtig eingestellt werden.

Wenn das bei deinem Projekt nicht passiert, mach es bei einem neuen und vergleiche die Unit-Gültigkeitsbereiche, die Uwe Raabe schon angesprochen hat.

AliNehring 4. Jul 2013 13:36

AW: Ungültige VersionsInfo in DProj seit Delphi XE2
 
Vielen Dank für Eure Hilfen
Jetzt geht alles


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