AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

doppelte *.res Datei x64

Ein Thema von venice2 · begonnen am 2. Mär 2020 · letzter Beitrag vom 2. Mär 2020
Antwort Antwort
venice2
(Gast)

n/a Beiträge
 
#1

doppelte *.res Datei x64

  Alt 2. Mär 2020, 12:19
Warum wird unter Delphi 10.3.3 immer eine doppelte *.res erzeugt? Das nervt irgendwie.
Kann man das abstellen?

Ich erstelle meine *.res innerhalb des Projekt
{$R '_res\xxx.res' '_res\xxx.rc'}

Es soll also im Ordner die xxx.res erzeugt werden, tut es auch.
Zusätzlich wird aber die gleiche nochmals im Root Pfad des Quelltextes erstellt warum?
Diese beinhaltet dann die Icons von Delphi anstelle dieser von meiner Anwendung.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#2

AW: doppelte *.res Datei x64

  Alt 2. Mär 2020, 12:30
Mutmaßung: Die Datei wird im Projectroot erwartet. Sie darf auch woanders sein, aber historische Reste erzeugen sie dann immer auch im Root. Darauf basierende Lösung: Immer im Root ablegen.

Sherlock
- die Angaben sind wie immer ohne Gewehr, damit man mich nicht erschießen kann, falls sie Schwachsinn sind
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#3

AW: doppelte *.res Datei x64

  Alt 2. Mär 2020, 12:38
Mutmaßung: Die Datei wird im Projectroot erwartet.
Ich denke alles richtig gemacht zu haben.
Und das Problem habe ich unter älteren Delphi Versionen noch nicht erlebt.

Unter Ressourcen-Compiler wurde der Pfad zur Ressource zusätzlich noch eingetragen.
Abgabeverzeichnis für .res Dateien "_res\"
Aber der Compiler macht was er will.

Er legt seine eigene .res im Root Pfad ab wo sich die *.dproj Datei befindet.
Unverständlich.

Geändert von venice2 ( 2. Mär 2020 um 12:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: doppelte *.res Datei x64

  Alt 2. Mär 2020, 13:20
Die Datei wird im Projectroot erwartet. Sie darf auch woanders sein,
Die Syntax mit dem Ressourcen-Skript, wo der Compiler den Ressorcencompiler anspricht, funktioniert nur in der DPR und DPK. In PAS wird nur der erste Parameter verwendet und der RC ignoriert.
Delphi-Quellcode:
{$R '_res\xxx.res'}  // überall, mit oder ohne ' , falls kein Leerzeichen im Dateinamen/Pfad

{$R '_res\xxx.res' '_res\xxx.rc'}  // nur in der Projektdatei
Ja, die automatisch generierte RES liegt immer im Projektverzeichnis, obwohl es "theoretisch" möglich sein sollte die zu verschieben.
Ansonsten kenn ich es auch nur so, dass RES immer relativ zu der Datei liegen, in welcher sie eingebunden werden. (nichts mit Suchpfaden oder so)


Ich habe hier auch knapp 75 Projekte (BPL/DLL/EXE) rumliegen, in einer Projektgruppe.
In die binde ich eigene Ressourcen ein, die vom Finalbuilder mit der aktuellen Version und einem passenden Manifest generiert werden, aber komischer Weise ist es bei 5-10 Projekten im Delphi nicht möglich die Versionsressouce zu deaktiveren, bzw. sie aktiviert sich immer wieder von selbst.
Obwohl es keine merklichen Unterschiede zwischen diesen DPROJ/DPK gibt, leben wir nun schon jahrelang mit der Warnung vonwegen doppelter Ressource und müssen nur aufpassen dass Delphi die DPK nicht ummodelt und unsere RES immer nach der RES vom Delphi eingebunden wird, denn der Letzte gewinnt und wird gelinkt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 2. Mär 2020 um 13:33 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#5

AW: doppelte *.res Datei x64

  Alt 2. Mär 2020, 13:27
Seltsam ist doch nur das eine zusätzliche *.res angelegt wird.
Entschuldige wenn ich es so schroff sage. Das ist einfach Schwachsinn.
Die Wird weder verwendet noch in die Exe mit ein-kompiliert. Daher unnötig.

Ok. Ist wie es ist.
Dachte nur das könnte man ausschalten dieses Verhalten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: doppelte *.res Datei x64

  Alt 2. Mär 2020, 13:38
Delphi hat eine eigene RES, wo z.B. die Projektversion drin steht.
Auch was über den RessourcenManager im Delphi angelegt wird, landet dort drin.

Wenn man das {$R *.res *.rc} aus der Projektdatei entfernt, dann wird die Versionsinformation in den Projektoptionen disabled,
aber wenn z.B. was von dieser Ressource auch in der DPROJ drin steht, dann syncronisiert Delphi das zurück in die DPR und schon isses wieder da.
Und sobald {$R *.res *.rc} in der DPR/DPK drin steht, wird diese Datei von IDE/Compiler immer wieder neu erstellt.


Du kannst mal versuchen selbst den Haken in den Projektoptionen wegzumachen und schauen ob es hilft.
Und aufpassen, dass dieses Setting womöglich auch noch konfigurationsabhängig sein könnte.
Miniaturansicht angehängter Grafiken
versioninfo.png  
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 2. Mär 2020 um 13:44 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#7

AW: doppelte *.res Datei x64

  Alt 2. Mär 2020, 13:53
Ich verwende keine Versionsinformationen die sind immer aus.
Genauso verwende ich kein Manifest aus der Delphi IDE.

Zitat:
Delphi hat eine eigene RES, wo z.B. die Projektversion drin steht.
Auch was über den Ressourcen Manager im Delphi angelegt wird, landet dort drin.
Mag ja unter Umständen seine Richtigkeit haben.

Erklärt aber nicht den Zustand das eine Datei angelegt wird die vom Projekt nicht verwendet wird.
Und es nervt wenn andere Leute mit meinem Quelltext arbeiten müssen und nicht wissen welche *.res nun für das Projekt zuständig ist.

Unter älteren Version von Delphi gebe ich den Pfad zur *.res in den Optionen ein und dann wird dort gesucht und diese verwendet.
Unter x64 scheint das überhaupt nicht mehr korrekt zu funktionieren.
Ich denke die Angabe wird ignoriert und deshalb eine *.res im Root Pfad angelegt die dann nicht verwendet wird.
Es wird einfach der Suchpfad zur *.res ignoriert.

Teste es doch bitte mal dann siehst du was ich meine.

Zitat:
In PAS wird nur der erste Parameter verwendet und der RC ignoriert.
Nein wird er nicht.

Ich habe meine Schalter für die *.res Dateien in meinem Hauptformular. (nicht in der DPR)
Meine RC Datei ist im Projekt integriert.
Wenn ich Version ändere dann ändere ich die RC entsprechend ab.
Würde es nicht funktionieren (der RC ignoriert) dann hätte ich immer die gleiche Version ist aber nicht so.
Die *.res wird dann entsprechend der RC neu kompiliert.

Aber ich sehe schon es gibt keinen Schalter der das unterbinden kann. Darum ging es mir eigentlich.

Geändert von venice2 ( 2. Mär 2020 um 14:06 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 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