Hallo Leute!
ich hab gerade das doofe Problem dass ich zwei Pakete habe die jeweils eine identische Datei kopieren. Deinstallier ich jetzt eines der beiden Pakete sollte die Datei eigentlich nicht gelöscht werden (da sie vom anderen, installierten Paket ja noch benötigt wird!)
Mir war vom Kurs eigentlich in Erinnerung dass das dann auch nicht passieren sollte, aber bei Tests auf zwei Rechnern hat es jeweils nicht funktioniert. Auch wäre ich dann davon ausgegangen dass die Datei automatsich nochmal neu kopiert werden sollte, da ja die Datei ja dem anderen Programm fehlt...
Wenn mir jemand nen Tipp geben könnte (wo wahrscheinlich mein Denkfehler liegt) wäre ich dankbar!
Grüß killerkiwi
identische Dateien in zwei unterschiedlichen Paketen
Moderatoren: MVogt, moderators
-
- Beiträge: 28
- Registriert: 08. Mai 2007, 16:25
- Wohnort: Bretten
- Kontaktdaten:
Hallo,
Wenn die Datei im EmpirumSkript über einen Befehel wie:
1:%SRC%Manager.exe, %APP%Manager.exe, NORMAL, 574784
kopiert wird, kann man entweder den FLAG "SHAREDDLL" anhängen, also:
1:%SRC%Manager.exe, %APP%Manager.exe, NORMAL SHAREDDLL, 574784
(Erklärung siehe unten.)
Oder einfacher den Flag "DONTDELETE" anhängen, damit wird bei der Deinstallation diese Datei ausgelassen, also:
1:%SRC%Manager.exe, %APP%Manager.exe, NORMAL DONTDELETE, 574784
Sollte allerdings die Datei über ein externes Installationsprogramm installiert/deinstalliert werden, müsste man evtl. bei der Deinstallation die betroffene Datei von einer zuvor ertstellten Kopie der Datei aus dem %SRC% kopieren.
MFG Mario
.
Wenn die Datei im EmpirumSkript über einen Befehel wie:
1:%SRC%Manager.exe, %APP%Manager.exe, NORMAL, 574784
kopiert wird, kann man entweder den FLAG "SHAREDDLL" anhängen, also:
1:%SRC%Manager.exe, %APP%Manager.exe, NORMAL SHAREDDLL, 574784
(Erklärung siehe unten.)
Oder einfacher den Flag "DONTDELETE" anhängen, damit wird bei der Deinstallation diese Datei ausgelassen, also:
1:%SRC%Manager.exe, %APP%Manager.exe, NORMAL DONTDELETE, 574784
Code: Alles auswählen
Hier die Info aus dem Handbuch:
SHAREDDLL
Die Zieldatei wird in der Registrierungsdatenbank als gemeinsam benutzte Datei eingetragen. Dabei wird ein Zähler erhöht. Beim Deinstallieren wird der Zähler heruntergezählt und das Löschen der Datei angeboten, wenn der Zähler auf 0 fällt.
DONTDELETE
Die Zieldatei wird beim Deinstallieren nicht gelöscht bzw. der Unterabschnitt nicht verarbeitet. Dieses Flag wird z. B. für den "Uninstaller "_UnInst.exe" benötigt, da eine Anwendung (und damit auch Setup.exe) sich nicht selbst zusammen mit den übergeordneten Verzeichnissen löschen kann.
Sollte allerdings die Datei über ein externes Installationsprogramm installiert/deinstalliert werden, müsste man evtl. bei der Deinstallation die betroffene Datei von einer zuvor ertstellten Kopie der Datei aus dem %SRC% kopieren.
MFG Mario
.
-
- Beiträge: 28
- Registriert: 08. Mai 2007, 16:25
- Wohnort: Bretten
- Kontaktdaten:
prima, vielen Dank!
ja, da hätte man mit bischen Hirn auch selbst draufkommen können;) Vielen Dank für die Infos!!!
-
- Beiträge: 28
- Registriert: 08. Mai 2007, 16:25
- Wohnort: Bretten
- Kontaktdaten:
SHAREDDLL
Die Zieldatei wird in der Registrierungsdatenbank als gemeinsam benutzte Datei eingetragen. Dabei wird ein Zähler erhöht. Beim Deinstallieren wird der Zähler heruntergezählt und das Löschen der Datei angeboten, wenn der Zähler auf 0 fällt.
hier hätte ich noch eine Frage:
wenn ich die Deinstallation ohne Benutzerinteraktion durchführe sind die Dateien auch nach löschen beider Programme noch da. Könnte das daran liegen dass mir das "Löschen der Datei angeboten" wird und wenn keine Antwort kommt dann die Datei bestehen bleibt??? Wenn ja, wie kann ich das umgehen?
Die Zieldatei wird in der Registrierungsdatenbank als gemeinsam benutzte Datei eingetragen. Dabei wird ein Zähler erhöht. Beim Deinstallieren wird der Zähler heruntergezählt und das Löschen der Datei angeboten, wenn der Zähler auf 0 fällt.
hier hätte ich noch eine Frage:
wenn ich die Deinstallation ohne Benutzerinteraktion durchführe sind die Dateien auch nach löschen beider Programme noch da. Könnte das daran liegen dass mir das "Löschen der Datei angeboten" wird und wenn keine Antwort kommt dann die Datei bestehen bleibt??? Wenn ja, wie kann ich das umgehen?
Mit welchem Silent-Parameter wird das Paket denn ausgeführt?
Vielleicht mal prüfen ob ein zusätzlicher Parameter wie ALWAYS hilft.
Odre nochmal was abgefahrenes, aber bitte erst prüfen ob das funktioniert
Den Regsitry Wert für den SHAREDDLL-Status abfragen und bei einem Stand von "1" eine weitere Sektion zur Deinstallation der gewünschten Datei aufrufen.
Müsste in etwa so funktionieren:
MFG Mario
.
Vielleicht mal prüfen ob ein zusätzlicher Parameter wie ALWAYS hilft.
Odre nochmal was abgefahrenes, aber bitte erst prüfen ob das funktioniert

Den Regsitry Wert für den SHAREDDLL-Status abfragen und bei einem Stand von "1" eine weitere Sektion zur Deinstallation der gewünschten Datei aufrufen.
Müsste in etwa so funktionieren:
Code: Alles auswählen
...
[Commands]
1:%System%\calc.exe, C:\Temp\calc.exe, SHAREDDLL, 0
;DummyWert angeben
Set V_SharedDllCounter = 2
Set V_SharedDllCounter = %HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls","C:\Temp\calc.exe"%
ReplaceEnv V_SharedDllCounter
;Echo zur berprüfung
Echo %V_SharedDllCounter%
If "V_SharedDllCounter" == "1" Then "Set:DeleteFile" EndIf
[Set:DeleteFile]
1:%System%\calc.exe, %temp%\calc.exe, DELETE, 0
...
MFG Mario
.
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste