Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Was macht "Projekt bereinigen" eigentlich? (https://www.delphipraxis.net/206521-macht-projekt-bereinigen-eigentlich.html)

Der schöne Günther 31. Dez 2020 16:05

Was macht "Projekt bereinigen" eigentlich?
 
Ich lösche eine Unit (die von anderen Units verwendet wird) von der Platte und entferne es aus dem Projekt.

Das Projekt kompiliert weiterhin.

Ich mache "Projekt bereinigen"

Das Projekt kompiliert weiterhin.

Ich lösche über Windows alle .dcu-Dateien die ich finden kann.

Das Projekt kompiliert nicht mehr.


Wozu ist "Projekt bereinigen" eigentlich gut, wenn nicht hierfür? Was übersehe ich?

Uwe Raabe 31. Dez 2020 16:22

AW: Was macht "Projekt bereinigen" eigentlich?
 
Die Doku ist da offenbar nicht exakt genug:
Zitat:

Entfernt zuvor compilierte Dateien und belässt nur die Quelltextdateien, die zum Erzeugen des Projekts erforderlich sind. Insbesondere entfernt dieser Befehl alle erzeugten Dateien, wie zum Beispiel .dcu-Dateien, .bpl-Dateien usw.
Vermutlich bezieht sich das nur auf die Units, die explizit im Projekt aufgenommen sind.

Der schöne Günther 31. Dez 2020 17:30

AW: Was macht "Projekt bereinigen" eigentlich?
 
Habe es gerade nochmal an einem Testprojekt ausprobiert und das scheint tatsächlich so zu sein:

1. .pas-Datei aus Projekt entfernt
2. .dcu existiert noch
3. Projekt bereinigen: Löscht .dcu-Datei nicht
4. Andere Units: Verwenden .dcu-Datei fröhlich weiter

Dann muss ich mir in Zukunft merken: "Wenn ich eine Unit entfernen will: Erst Projekt bereinigen, dann Unit entfernen". Schön ist das nicht, aber wenigstens weiß ich jetzt weshalb das so ist.

Rollo62 1. Jan 2021 10:59

AW: Was macht "Projekt bereinigen" eigentlich?
 
Und / Oder eine BatchDatei Clean.bat bauen ...

dummzeuch 1. Jan 2021 14:35

AW: Was macht "Projekt bereinigen" eigentlich?
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1480152)
Dann muss ich mir in Zukunft merken: "Wenn ich eine Unit entfernen will: Erst Projekt bereinigen, dann Unit entfernen". Schön ist das nicht, aber wenigstens weiß ich jetzt weshalb das so ist.

.. oder Du benutzt den Clean Directories Expert in GExperts. Der ist nämlich genau aus diesem Grund geschrieben worden. Allerdings habe ich gerade gesehen, dass der Config-Button und -Dialog alles andere als selbsterklärend ist.

Monday 1. Jan 2021 21:25

AW: Was macht "Projekt bereinigen" eigentlich?
 
Bin mit Delphi nicht vertraut. "Lazarus" hat auch ein "Projekt bereinigen". Dieses löscht alle nicht-benötigten Dateien im Projektverzeichnis u.a. auch Dateien die nicht explizit im Projekt hinzugefügt worden sind. Evtl. ist das aber nicht immer gewollt, wenn z.B. zusätzliche JPG, Textdateien o.ä. oder andere selbst angelegte Dateien im Projektverzeichnis liegen. Ist dann etwas ärgerlich wenn diese Dateien weg sind und eigentlich doch benötigt worden sind.
Wenn das bei Delphi ähnlich ist, sollte man das im Hinterkopf haben oder wirklich jede Datei dem Projekt hinzufügen (bzw. Backups machen).

freimatz 1. Jan 2021 21:37

AW: Was macht "Projekt bereinigen" eigentlich?
 
... oder dem Versionskontrollsystem hinzufügen.

generic 1. Jan 2021 22:03

AW: Was macht "Projekt bereinigen" eigentlich?
 
Letztendlich wird doch nur MSBuild aufgerufen mit dem entsprechenden Target.
Wenn ihr nun die PAS-Datei entfernt, dann gibt es auch keine Referenz mehr auf die Datei.
Somit kann das CLEAN Target diese nicht löschen.

Schaut euch einfach mal eine .DPROJ Datei im Notepad oder ähnlich an.
Das ist eine MSBUILD Datei.
In den Delphi Ordnern sind dann noch .TARGET Dateien versteckt, welche weitere Anweisungen für MSBUILD enthalten.

Rollo62 2. Jan 2021 10:50

AW: Was macht "Projekt bereinigen" eigentlich?
 
Es bleibt halt immer die Frage wem man beim Aufräumen am meisten vertraut:
der IDE (nö), Lazarus (?), GEXperts (schonmal sehr gut), Kastri TOTAL CLEAN, GIT (?), ...

Ich bleibe da lieber bei meiner eigenen Batch-Datei und etwas Disziplin,
da weiss ich wenigstens genau was passiert :stupid:

Vor einem Release werden einmal ALLE "Leichen" aufgeräumt (und das können auch andere, eigene Files sein).
Ausserdem ist es dann Build-System freundlicher.

himitsu 7. Jan 2021 14:07

AW: Was macht "Projekt bereinigen" eigentlich?
 
Zitat:

Letztendlich wird doch nur MSBuild aufgerufen mit dem entsprechenden Target.
Die DPROJ ist zwar im Grund die Projektdatei mit den Projektoptionen, aber in Wirklichkeit ist es ein "Script" für MSBUILD.

Jupp, in der DPROJ werden die/einige der "erzeugten" Dateien mit aufgelistet.
Und darüber werden (nur) diese Dateien dann auch gelöscht. (was da nicht din steht, wird auch nicht "bereinigt")


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