Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Ordner bei der Deinstallation löschen


6 replies to this topic

Juergen Wagener

Juergen Wagener
  • Full Members
  • 32 posts

Posted 16 October 2012 - 14:01

Ich suche eine Möglichkeit, bei der Deinstallation eine Ordnerstruktur zu löschen, die nachträglich ins INSTALLDIR kopiert wurde, also bei der Installation noch nicht vorhanden war.

Zuertst habe ich das über eine vbs-CA versucht, die den Ordner aber nur gelöscht hat, wenn der Parameter INSTALLED nicht angegeben wurde. Möglicherweise habe ich die Stelle nicht gefunden an der das Script während der Deinstallation ausgeführt werden muss.

Habe dann noch jede Menge Versuche mit der RemoveFile-Tabelle gemacht, bei denen aber auch nichts entfernt wurde, was nach der msi-Installation dazu kam.

Geht rekursives Löschen überhaupt über die RemoveFile-Tabelle und was wäre der bessere Weg?

Edited by Juergen Wagener, 16 October 2012 - 15:22.


Juergen Wagener

Juergen Wagener
  • Full Members
  • 32 posts

Posted 17 October 2012 - 08:21

Teil 1 der Frage hat sich inzwischen erledigt:
- Install Exec Sequence: After InstallInitialize
- Install Exec Condition: Installed
hat jetzt doch funktioniert. Würde das aber gerne über die RemoveFile-Tabelle machen.

Edited by Juergen Wagener, 17 October 2012 - 08:23.


Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 17 October 2012 - 14:49

Laut Beschreibung von RemoveFile werden nur leere Ordner gelöscht. Man müsste also zuerst alle Dateien (als FileName * angeben )in einem Ordner und danach den Ordner selber (lasse das Feld FileName leer) löschen.
Und das muss man vorher mit jedem Unterordner machen.
Wenn der Anwender also weitere Ordner angelegt hat, hat man dabei ein Problem.

Oder kennt noch wer einen Weg, wie man Ornder inclusive Unterordner löscht?

Grüße
Spitfyr


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 17 October 2012 - 17:44

QUOTE
Install Exec Condition: Installed
Vorsicht, mit dieser Bedingung wird das Skript immer ausgeführt außer bei der Erstinstallation. Also zum Beispiel auch bei einem Modify, Repair oder Update.

Juergen Wagener

Juergen Wagener
  • Full Members
  • 32 posts

Posted 18 October 2012 - 08:52

Minimalistische Antwort, muss deshalb nochmal nachfragen.

Welche Bedingung wäre denn besser? Und wie ist das mit dem Löschen über RemoveFile-Table?

Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 18 October 2012 - 09:18

In der RemoveFile Table würde ich als InstallMode die 2 angeben (Remove only when the associated component is being removed (msiInstallStateAbsent).
Die DirProperty müssten also schon voerher bekannt sein und gesetzt werden.

Wenn du "Variabel" alle Unterordner löschen willst kann man eigentlich nur über InstallScript (oder eine eigene eingebundene DLL) machen.

Wobei immer noch das Problem mit den Unterordner vorhanden wäre (wenn der Anwender neue Ordner angelegt hat werden die über die Tabelle nicht gelöscht weil es ja dafür keinen Eintrag in der Tabelle geben kann).

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 October 2012 - 12:52

Bei einer Custom Action würde ich die Bedingung auch eine Komponente oder ein Feature anhängen, d.h. Bedingung:
$ComponentName=2
oder
&FeatureName=2

Details siehe "Conditional Statement Syntax"