Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Datei aus Bereitstellungsliste entfernen (FMX) (https://www.delphipraxis.net/213671-datei-aus-bereitstellungsliste-entfernen-fmx.html)

Harry Stahl 6. Sep 2023 18:28


Datei aus Bereitstellungsliste entfernen (FMX)
 
Ich habe ein FMX-Projekt entwickelt, da habe ich zunächst eine Template-Datei mit ausgeliefert (linux, macOS).

Nun speichere ich die Datei aber doch als Ressource, d.h. ich brauche die nicht mehr weitergeben und wollte sie wieder aus der Bereitstellungsliste entfernen.

Aus irgendeinem mir nicht ersichtlichen Grund wertet Delphi diese Datei aber als "Projectfile" und der Schalter zum löschen der der Datei ist deaktiviert (das uncheck-Kastchen für die Datei geht zwar, aber wenn ich das deaktiviere, aktiviert Delphi die Datei bei Lust und Laune auch mal wieder).

Nun gut, habe ich mir gedacht, dann eben auf die harte Tour. Delphi beendet und dann habe die Verweise auf die Datei in der ".dproj" gelöscht und auch aus der .deployproj.

dproj.local habe ich gleichfalls gelöscht.

Ein Scan in dem Verzeichnis ergibt auch, dass der Dateiname außer als Eintrag für die Ressourcen-Datei nirgendwo mehr drin ist.

Aber Überraschung: Starte ich Delphi erneut, ist der Eintrag wieder in der Bereitstellungsliste drin.

Ich frage mich nun: welchen sonstigen Speicherplatz mag es sonst noch geben, wo Delphi diese Infos abspeichert?

Rollo62 6. Sep 2023 19:04

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Ich weiß nicht, wie Du Dein neues Projekt erstellst.
Ich habe hier festgestellt, dass wenn ich von einem Projekt ( geöffnet ) in ein neues Projekt ( in anderem Verzeichnis ) und auch mit allen Sourcen aus der IDE speichere,
können immer noch Referenzen zu dem alten Projektverzeichnis bleiben.
Bei mir sind das *inc Include Files, welche lokal im neuen Projektverzeichnis liegen, aber immer noch beim Öffnen aus dem alten Verzeichnis kommen.

Vielleicht ist das bei *.dproj und Deployment auch so ?
Bei mir hilft da ein komplettes Reinigen der Verzeichnisse und ein Neustart der IDE, danach hat sie das neue Verzeichnis akzeptiert.

himitsu 6. Sep 2023 19:11

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Viele Pfade werden in den DSK und manchmal auch (durch einen schlechten Programmierer) absolut gespeichert, also nicht relativ zu der Datei, in welcher sie stehen.

Das bleibt dann natürlich noch im alten Verzeichnis.


Auch bleiben beim Verschieben oder Umbenennen manche Dateien des Projekts noch unter dem alten Namen/Verzeichnis bestehen, aber sind im Projekt mit dem neuen relativen Pfad verlinkt, wo sie dann entweder fehlen oder neu (leer) erstellt werden ... z.B. die Projekt *.RES :wall:
Also wenn man das Verschieben/Umbenennen über die IDE macht (Datei > speichern unter ODER im ProjektManager/ObjektInspector umbenannt)
Egal wo, auch mit der VCL.

Harry Stahl 6. Sep 2023 22:31

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anliegend mal zur Verdeutlichung ein Screenshot, der evtl. etwas deutlicher macht, worum es geht.

Nach Aufnahme der Datei in das Projekt, bzw. in die Bereitstellungsliste gab es keine Änderungen von Verzeichnissen oder Update des Projekts oder so.

Rollo62 7. Sep 2023 18:00

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Interessant. Die Datei ist von Dir beigestellt, oder nicht ?
Konnte man da nicht irgendwo den Typ manuell auf was anderes als Projektdatei stellen ?
Mal schnell gecheckt, bei mir scheint man das nicht einstellen zu können, ich habe aber noch nicht an einem leeren Projekt herumprobiert.
Der Deployment-Editor ist schon ziemlich "speziell", um das mal freundlich auszudrücken.

Harry Stahl 7. Sep 2023 21:38

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Zitat:

Zitat von Rollo62 (Beitrag 1526617)
Interessant. Die Datei ist von Dir beigestellt, oder nicht ?
Konnte man da nicht irgendwo den Typ manuell auf was anderes als Projektdatei stellen ?
Mal schnell gecheckt, bei mir scheint man das nicht einstellen zu können, ich habe aber noch nicht an einem leeren Projekt herumprobiert.
Der Deployment-Editor ist schon ziemlich "speziell", um das mal freundlich auszudrücken.

Ja, das ist eine Datei von mir.
Leider kann man den Typ nicht ändern.

Wie gesagt, wenn man den Eintrag wenigstens manuell in .droj bzw. .deployproj entfernen könnte... Aber Delphi gräbt den irgendwo wieder aus...

himitsu 8. Sep 2023 03:10

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Einiges in der DPROJ kommt von wo anders,
bzw. Anderes wird auch von der DPROJ wo anders hin syncronisiert.

z.B. die Compiler-Schalter in der DPK kommen aus der DPROJ, allerdings schwachsinnig die Variante der Basis-Config (wie um Himmels Willen soll der Dreck mit dem IMPLICITBUILDING funktionieren, wenn die falsche Config und falsche sonstige Projektoptionen, wie z.B. Ausgabepfade, verwendet werden)

Requires und Units werden dagegen von der DPR/DPK in die DPROJ übernommen.

Der Inhalt der Projekt *.res kommt auch "teilweise" von der RES in die DPROJ (Projekt-Resourcen, welche aber teilweise auch stattdessen in der .dres liegen), aber Anderes von der DPROJ zurück in die RES (Icons/Versionsinfo/Manifest).

Und die Bereitstellung .... tja, da wirst'e wohl mal in allen Dateien suchen müssen oder via ProcessMonitor zuschauen.

Stolle58 8. Sep 2023 08:20

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Hallo Harry,

ich würde mal, mit z.B. Notepad++ im Projektverzeichnis mit Hilfe der Funktion "In Dateien suchen",
den Dateinamen eintragen und danach suchen lassen.
Dadurch findest Du alle Dateien im Projekt wo der Dateinamen eingetragen ist.

Falls was gefunden wurde mit einem Doppelklick die Datei Öffnen und den Eintrag löschen.

Harry Stahl 8. Sep 2023 13:18

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Zitat:

Zitat von Stolle58 (Beitrag 1526628)
Hallo Harry,

ich würde mal, mit z.B. Notepad++ im Projektverzeichnis mit Hilfe der Funktion "In Dateien suchen",
den Dateinamen eintragen und danach suchen lassen.
Dadurch findest Du alle Dateien im Projekt wo der Dateinamen eingetragen ist.

Falls was gefunden wurde mit einem Doppelklick die Datei Öffnen und den Eintrag löschen.

Danke Dir, aber auf diese Idee bin ich auch schon gekommen und habe nichts gefunden...

Die einzige Quelle, wo Delphi das noch als Info hernehmen könnte, ist ja der Eintrag für die Datei als Resource-Datei. Evtl. wird diese Datei dann genau so wie das MainIcon.png, das ebenfalls in der Ressource ist, als "ProjectFile" gewertet.

Nun ja, ich muss momentan halt jedesmal die Übetragung der Datei in der Bereitstellunsliste deaktivieren, das hält immerhin bis zum nächsten Öffnen des Projekts (dann ist die Datei wieder automatisch zum Übertragen aktiviert).

Uwe Raabe 8. Sep 2023 13:25

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Zitat:

Zitat von Harry Stahl (Beitrag 1526622)
Wie gesagt, wenn man den Eintrag wenigstens manuell in .droj bzw. .deployproj entfernen könnte... Aber Delphi gräbt den irgendwo wieder aus...

Hattest du die IDE vorher beendet? Manchmal wird einfach ein interner Cache nicht aktualisiert.

Harry Stahl 8. Sep 2023 13:38

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1526648)
Zitat:

Zitat von Harry Stahl (Beitrag 1526622)
Wie gesagt, wenn man den Eintrag wenigstens manuell in .droj bzw. .deployproj entfernen könnte... Aber Delphi gräbt den irgendwo wieder aus...

Hattest du die IDE vorher beendet? Manchmal wird einfach ein interner Cache nicht aktualisiert.

Ja klar.

Aber ich denke, ich weiß nun woran es liegt. Entferne ich die BackupDBTemplate.xdabase aus der Ressource, dann verschwindet die Datei auch aus der Bereitstellungsliste. Füge ich sie wieder hinzu, steht sie auch wieder in der Bereitstellungsliste drin, zur Automatischen Übertragung.

Das ist nicht ganz korrekt, denn nur weil ich eine Datei in "Ressourcen und Bilder" aufnehme, muss sie nicht zwangsläufig für ein Deployment (Linux und MacOS) bereitgestellt werden.

Stolle58 9. Sep 2023 06:30

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Zitat:

Entferne ich die BackupDBTemplate.xdabase aus der Ressource, dann verschwindet die Datei auch aus der Bereitstellungsliste.

Da du die Resource über "Project/Resourve und Bilder" eingebunden hast, erzeugt Delphi eine "Projectname.dres" Datei.
Diese "dres Datei" mußt du entfernen und den Eintrag im Project Sourcecode. Danach kannst Du eine Res Datei erzeugen und
die Resdatei im Projec einbinden
Code:
{$R 'Meine Resource.res}

Rollo62 10. Sep 2023 13:05

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Manche Daten sind auch im A%ppData% und anderswo verstreut.

Harry Stahl 10. Sep 2023 19:25

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
Zitat:

Zitat von Stolle58 (Beitrag 1526672)
Zitat:

Entferne ich die BackupDBTemplate.xdabase aus der Ressource, dann verschwindet die Datei auch aus der Bereitstellungsliste.

Da du die Resource über "Project/Resourve und Bilder" eingebunden hast, erzeugt Delphi eine "Projectname.dres" Datei.
Diese "dres Datei" mußt du entfernen und den Eintrag im Project Sourcecode. Danach kannst Du eine Res Datei erzeugen und
die Resdatei im Projec einbinden
Code:
{$R 'Meine Resource.res}

Ja danke, für diesen Ansatz.

Allerdings habe ich ja dann den Aufwand immer wieder die "Meine Resource.res manuell" zu erzeugen, wenn sich da was ändert. Bei Delphi reicht ja eigentlich einmal den Dialog wieder aufzurufen und auf OK zu klicken. Aber gut, kann man ja auch automatisieren. Denke mal drüber nach, jedenfalls danke für den Hinweis.

himitsu 10. Sep 2023 20:06

AW: Datei aus Bereitstellungsliste entfernen (FMX)
 
In der DPR geht auch
Delphi-Quellcode:
{$R 'MeineResource.res' 'MeineResource.rc'}
welches der InlineCompiler, sowie auch MSBuild (jenes nimmt den Eintrag, welcher von DPR in die DPROJ synchronisiert wird)
und erzeugt bei jedem Compile/Build die RES dann neu.

(aber, wie gesagt, ausschließlich in der DPR oder DPK, aber nicht in PAS, wobei es dort nichtmal eine Warnmeldung gibt, dass der zweite Parameter ignoriert wird)



Alternativ könnte man den Aufruf des RessoucenCompilers (RC.exe oder brcc32.exe) auch ins PreBuild-Script einfügen.


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