![]() |
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? |
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. |
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. |
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. |
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. |
AW: Datei aus Bereitstellungsliste entfernen (FMX)
Zitat:
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... |
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. |
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. |
AW: Datei aus Bereitstellungsliste entfernen (FMX)
Zitat:
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). |
AW: Datei aus Bereitstellungsliste entfernen (FMX)
Zitat:
|
AW: Datei aus Bereitstellungsliste entfernen (FMX)
Zitat:
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. |
AW: Datei aus Bereitstellungsliste entfernen (FMX)
Zitat:
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}
|
AW: Datei aus Bereitstellungsliste entfernen (FMX)
Manche Daten sind auch im A%ppData% und anderswo verstreut.
|
AW: Datei aus Bereitstellungsliste entfernen (FMX)
Zitat:
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. |
AW: Datei aus Bereitstellungsliste entfernen (FMX)
In der DPR geht auch
Delphi-Quellcode:
welches der InlineCompiler, sowie auch MSBuild (jenes nimmt den Eintrag, welcher von DPR in die DPROJ synchronisiert wird)
{$R 'MeineResource.res' 'MeineResource.rc'}
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