Laden...

[gelöst]Vor dem Setup alte Ordner und Dateien löschen - Zugriffsrechte

Erstellt von Christel vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.690 Views
C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 7 Jahren
[gelöst]Vor dem Setup alte Ordner und Dateien löschen - Zugriffsrechte

Hallo,
ich habe ein Setup für mein Programmpaket. Zusätzlich zum Setup pflege ich noch einen Update-Mechanismus zur Programmaktualisierung ohne Neuinstallation.

Im Rahmen des Update-Mechanismus wurde in der Vergangenheit ein spezifischer Unterordner angelegt und gefüllt, der nicht Bestandteil des Setup ist. Es hat sich mittlerweile jedoch die Notwendigkeit ergeben, diesen bereits beim Installieren zu füllen und beim Deinstallieren wieder zu leeren. Das funktioniert, aber ...

Bei Computern mit alter Version bleibt besagter Ordner inkl. Inhalt nach der Deinstallation erhalten und während einer Neuinstallation gelingt es nicht, die alten Dateien zu ersetzen. Das führt zu Problemen bei der Nutzung, da eine veraltete Version benutzt wird.

Es hilft also nur, zu deinstallieren, besagten Ordner zu löschen (oder zu leeren) und das Paket nochmals zu installieren. Ab dann läuft alles sauber.

Im Hause kann ich diese Prozedur (also das manuelle Löschen/Leeren) den Kollegen einmalig zumuten.
Für Kunden würde ich gern eine elegante Lösung finden.

Gibt es Ideen?

Danke,
Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.

5.658 Beiträge seit 2006
vor 7 Jahren

Hi Christel,

Zusätzlich zum Setup pflege ich noch einen Update-Mechanismus zur Programmaktualisierung ohne Neuinstallation.

Ist das eine Eigenentwicklung oder verwendet ihr dafür eine Bibliothek wie Squirrel?

Weeks of programming can save you hours of planning

C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 7 Jahren

Der Update-Mechanismus ist eine Eigenentwicklung, das Programmpaket wird als ZIP heruntergeladen und lokal entzippt. Besagter Unterordner fungiert als temporärer Ordner für genau die Dateien, die während des Unzip nicht überschrieben werden können ... weil sie das Unzip durchführen.

Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.

5.658 Beiträge seit 2006
vor 7 Jahren

während einer Neuinstallation gelingt es nicht, die alten Dateien zu ersetzen

Warum nicht?

Weeks of programming can save you hours of planning

C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 7 Jahren

Warum nicht?

Ja, warum nicht?
Es ist ein Fakt, dass das Verzeichnis vor der Installation 4 alte Dateien enthält und diese nachher immer noch unverändert dort liegen. Das Setup meldet keinen Fehler und läuft ansonsten erfolgreich durch.

Es fällt dann nur auf, dass beim nächten Update die alten Dateien verwendet werden ... und nicht funktionieren.

Danke,
Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.

5.658 Beiträge seit 2006
vor 7 Jahren

Wir kennen doch den Code von deinem Updater nicht, wie sollen wir da die Fehlerursache erkennen...? Du kannst doch den Updatevorgang debuggen, und schauen, warum die Dateien nicht entfernt werden. Vielleicht sind sie noch in Verwendung? Vielleicht kennt der Updater die Dateien nicht, und ignoriert sie?

Weeks of programming can save you hours of planning

C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 7 Jahren

Ich glaube, da gibt es ein großes Missverständnis.

Der Updater funktioniert fehlerfrei.

Das Setup (reguläres VS Setup Projekt) ist das Problem. Es soll Daten in einem Verzeichnis installieren, das irgendwann vorher von dem Updater angelegt und gefüllt wurde. Aber das tut es nicht. Es funktioniert erst, wenn ich die Dateien manuell lösche. Das ist eine unelegante Lösung und nicht kundentauglich. Dafür suche ich eine Alternative.

Danke,
Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.

5.658 Beiträge seit 2006
vor 7 Jahren

Wir wissen nur, was du geschrieben hast. Da steht nichts von einem VS-Setup-Projekt.

Woher soll denn das Setup wissen, welche Dateien zu löschen sind? Das mußt du schon selbst angeben oder manuell durchführen. Keine Ahnung ob ein VS-Setup diese Möglichkeit überhaupt hat.

Weeks of programming can save you hours of planning

C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 7 Jahren

Sorry, die Info zum VS-Setup-Projekt hat tatsächlich gefehlt, das war meine Schuld.
Daher habe ich die Info noch nachgeschoben.

Das Setup soll die Dateien nicht löschen, sondern überschreiben, tut es aber nicht.

Zum Verständnis nochmal Schritt für Schritt:

  1. Das Setup (Version 1, wurde in der Vergangenheit benutzt) installiert das Programmpaket XXX unter Programme(x86)/XXX

  2. Der Updater legt ein Verzeichnis Programme(x86)/XXX/ZZZ an und füllt es mit 4 Dateien

  3. Das Programm wird deinstalliert, Programme(x86)/XXX/ZZZ bleibt und mit ihm die 4 Dateien (da sie nicht Bestandteil des Setups waren). Soweit alles OK.

  4. Ein neues Setup (Version 2, neu) für das gleiche Programmpaket wird nach Programme(x86)/XXX installiert, zusätzlich zur Version 1 enthält es den Unterordner ZZZ mit den 4 Dateien

  5. Das Setup meldet "erfolgreich abgeschlossen", in ZZZ liegen aber die alten Dateien

Danke für Deine Geduld.
Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.

5.658 Beiträge seit 2006
vor 7 Jahren

Weeks of programming can save you hours of planning

C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 7 Jahren

Danke, schaue ich mir morgen an.
Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.

3.825 Beiträge seit 2006
vor 7 Jahren

Du kannst auch dem Installer einen anderen Pfad anlegen lassen und beim ersten Start Deiner App die alten Verzeichnisse löschen und die neuen umbennen.

Im Setup selber kann man ja auch eigenne Code einbauen der nach Installation noch ein paar Sachen macht.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

C
Christel Themenstarter:in
448 Beiträge seit 2007
vor 7 Jahren

Danke nochmal,
der erste Link hat mir weiter geholfen.

Die vorhandenen Dateien werden überschrieben, wenn sie im Setup eine neue Version haben. Allerdings genügt es nicht, die letzte Ziffer hochzuzählen. Der Vergleich bezieht nur die ersten 3 Versionsteile (major.minor.build) ein.

Gruß
Christel

Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.