Page 1 of 2
alte Version nachträglich deinstallieren
Posted: 21. Sep 2012, 18:50
by isc
Gibt es einen Trick, ein altes Paket nachträglich zu deinstallieren?
Pakt x 1.0 installiert
Paket x 2.0 installiert (mit AskUninstallOld=0, so dass das alte nicht deinstalliert wird)
Ein nachträglicher Deinstallationsauftrag für Version 1.0 geht nun ins Leere, nichts passiert.
Gibt es einen Trick, die Deinstallation des alten Pakets nachträglich laufen zu lassen??
Natürlich funktioniert es, wenn man
Erst 2.0 deinstalliert
dann 1.0 deinstalliert
wieder 2.0 installiert
Geht es einfacher?? Kann man die Deinstallation der alten Version "erzwingen"??
Re: alte Version nachträglich deinstallieren
Posted: 21. Sep 2012, 19:10
by Walter_Schulz
Der Ansatz ist schon im selbigen zum Scheitern verurteilt, wenn Snapshot-Verfahren zum Einsatz kamen.
- Datei xy.exe sei in Paket v1.0 und v2.0 vorhanden: Die Deinstallationsroutine von v1.0 loescht die Datei, die von v2.0 installiert wurde. Ups!
Selbiges gilt fuer Reg-Eintraege, die von 1.0 erstellt wurden. In beiden Faellen muss man 2.0 wieder drueberbuegeln.
Bitte noch mal den Ansatz ueberdenken. Wenn es hingegen "nur" darum geht, die Registry so zu bereinigen, dass Empirum meint, die alte Version sei nicht drauf: Machbar, aber warum?
Ciao!
Walter Schulz
Re: alte Version nachträglich deinstallieren
Posted: 21. Sep 2012, 19:54
by isc
Hallo,
kein Snapshot-Verfahren, sondern unattend. In meinem Fall ist die Version 1.0 eigenständig neben der 2.0, laufen auch nach Installation von 2.0 beide. Aber es soll ja nur eine verwendet werden. Einer Deinstallation nachträglich würde also nicht das 2er zerstören....
sinnvolle Anwendung:
2 User auf dem gleichen Rechner. Einer ist bereits für die neue Version geschult, einer nicht. Also beide Versionen sinnvoll. Wenn beide User geschult sind, wird nur noch die neue Version benötigt und dier 1er könnte deinstalliert werden.
Re: alte Version nachträglich deinstallieren
Posted: 21. Sep 2012, 20:25
by Walter_Schulz
Wenn die beiden Versionen unabhaengig voneinander laufen koennen, kann man doch die beiden Pakete mit unterschiedlichen Paketnamen (+verschiedenen AppDir-Namen) laufen lassen und haette gar kein Problem, aussser dem der erhoehten Entropie auf dem Paketserver (= mehr Unordnung in der Paketverwaltung).
Da dann die Pakete unabhaengig sind, loest sich das Problem mit der Empirum-Versionsverwaltung von selbst.
Was spricht dagegen?
Ciao!
Walter Schulz
Re: alte Version nachträglich deinstallieren
Posted: 22. Sep 2012, 21:11
by r.wiegel
Hallo,
Ein nachträglicher Deinstallationsauftrag für Version 1.0 geht nun ins Leere, nichts passiert.
Da liegt das Problem. Warum funktioniert sie nicht? Lässt sich V. 1.0 manuell (Systemsteuerung) deinstallieren?
Haben Sie in Registry zwei Einträge? (V 1.0 und 2.0)
Gruß
Roman
Re: alte Version nachträglich deinstallieren
Posted: 23. Sep 2012, 10:50
by Walter_Schulz
Works as designed ...
Die lokale Setup.inf der alten Version wird ueberschrieben, wenn man AskUninstallOld auf 0 gesetzt hat und damit saegt man sich bezueglich Deinstallation der alten Version den Ast ab, auf dem man sitzt. Jedenfalls, wenn man die Default-Einstellungen mit %App% benutzt.
Ciao!
Walter Schulz
Re: alte Version nachträglich deinstallieren
Posted: 23. Sep 2012, 21:00
by r.wiegel
Ok. Dann sehe ich nur eine Möglichkeit, wenn die V. 1.0 und V.2.0 bereits verteilt worden sind: ein drittes Paket (ja, leider), das in [SET:Installation] einen Deinstallation-Aufruf für V. 1.0 hat.
(msiexec /x {GUIDV1.0} oder %ProgramFiles%\AppV.1\uninstall.exe /s, wie auch immer). In [Set:Deinstallation] sollte nichts stehen.
Gruß
Roman
Re: alte Version nachträglich deinstallieren
Posted: 24. Sep 2012, 15:55
by isc
r.wiegel wrote: Lässt sich V. 1.0 manuell (Systemsteuerung) deinstallieren?
Haben Sie in Registry zwei Einträge? (V 1.0 und 2.0)
Hallo Roman,
1.0 lässt sich über die Systemsteuerung deinstallieren (Empirum-Dialog)
Ja, ich habe zwei Einträge in der Registry
Re: alte Version nachträglich deinstallieren
Posted: 24. Sep 2012, 15:57
by isc
Walter_Schulz wrote:Works as designed ...
Die lokale Setup.inf der alten Version wird ueberschrieben, wenn man AskUninstallOld auf 0 gesetzt hat und damit saegt man sich bezueglich Deinstallation der alten Version den Ast ab, auf dem man sitzt. Jedenfalls, wenn man die Default-Einstellungen mit %App% benutzt.
Ciao!
Walter Schulz
Hallo,
die lokale Setup.inf wird nicht überschrieben
Version 1.0 hat den Pfad
ApplicationDir=%ProgramFilesDir%\%ProductName%
Version 2.0 hat den Pfad
ApplicationDir=%ProgramFilesDir%\%ProductName%\%Version%
Re: alte Version nachträglich deinstallieren
Posted: 24. Sep 2012, 22:32
by r.wiegel
Mir ist es immer noch nicht ganz klar, warum die Deinstallation nicht geht.
Ich hätte die Verteilungsoption des Paketes Ver. 1.0 auf "Deinstallieren" gesetzt und einem Client zugewiesen. Beim Vorgang wird das Paket erneut zum Client übertragen, also die Deinstallation wird aus dem Cache lokal ausgeführt.
Was steht denn in [Set:Deinstallation] der Version 1.0 und der Version 2.0?
Gruß
Roman
Re: alte Version nachträglich deinstallieren
Posted: 25. Sep 2012, 16:08
by isc
Hallo,
ich hänge mal von den Paketen die setup.infs an.
Reell sind es die Versionen 8.5SR1 und 8.6SR1. Aber das sollte ja egal sein. Grundsätzlich habe ich auch bei anderen Paketen das gleiche Problem.
Re: alte Version nachträglich deinstallieren
Posted: 25. Sep 2012, 22:48
by r.wiegel
Setup85sr1.inf:
die Deinstallation wird ohne eine Responsdatei aufgerufen:
Code: Select all
-call "%Src%\InstallFiles\Setup.exe" -s
Ich kenne das Program nicht, denke aber, dass auch hier eine uninstall.iss aufgezeichnet und verwendet werden sollte.
So ist es zumindest in der Version 8.6 SP1.
Setup86sr1.inf:
den Befehl Set in [SET:Deinstallation2] bitte ohne das Minus-Zeichen davor verwenden, da eine Ausnahme ist. Zum Testen:
Code: Select all
[SET:Deinstallation2]
-echo %VarB%
-Set VarB=B
-echo %VarA%
Set VarA=A
Die Deinstallation der Version 8.6SR1 funktioniert somit auch nicht wirklich oder?
den Copy-Befehl bitte mit /y versehen. Die Dateien werden bei der Deinstallation nicht gelöscht. Bei einer neuen Installation oder Reinstallation wird der Benutzer gefragt, ob die Dateie überschrieben werden sollen.
Die Abfrage If DoesRegKeyExist ("HKLM,SOFTWARE\WOW6432Node") == "1" Then "Setx64" Else "Setx86" EndIf usw.
wäre überflüssig, da Platform=x64 ist.
Was steht in Registry unter "UninstallString"?
Re: alte Version nachträglich deinstallieren
Posted: 27. Sep 2012, 10:50
by isc
Hallo Roman,
leider bin ich gestern nicht dazu gekommen, mir Ihre Antwort genauer anzuschauen, eventuell schaffe ich es heute.
Was ich aber schnell gemacht habe, ist ein Testpaket, das nix installiert. Auch da ist das Verhalten abolut identisch. Die alte Version lässt sich nicht deinstallieren.
Anbei den setup.infs
Re: alte Version nachträglich deinstallieren
Posted: 27. Sep 2012, 22:53
by r.wiegel
Nun kann ich das Verhalten bestätigen. Ich habe schon oft AskUninstallOld auf null gesetzt, jedoch dann, wenn Clients diverse Versionen eines Programmes hatten (z.B. weil Autoupdate nicht deaktiviert ist) und ich mit einer aktuellen Version alle die ablösen wollte. In so einem Fall setze ich AskUninstallOld auf null und baue einen CleanUp-Abschnitt ein. In dem deinstalliere ich z.B. alle möglichen Java-Versionen mit /qn. Zusätzlich muss Registry von Empirum-Einträgen bereinigt werden.
Die Konstellation (AskUninstallOld=0 und zwei Versionen parallel verwalten) konnte ich mit Ihren Dateien nachstellen. Es ist wohl so.
Falls die beiden Pakete bereits unternehmensweit verteilt sind, bleibt nichts übrig als mit einem dritten Paket gezielt die Version 8.5 beim Bedarf zu deinstallieren. Das Paket könnte so aussehen:
Code: Select all
...
ProductName= OriginLab uninstall
DeveloperName=Additive
Version=8.5SR1
…
[Set:Installation]
Call Deinstallationsaufruf
…
[SET:Deinstallation2]
;nichts
Gruß
Roman
Re: alte Version nachträglich deinstallieren
Posted: 28. Sep 2012, 07:48
by isc
Hallo Roman,
vielen Dank für die Antwort. Ich hatte es befürchtet. Ich hatte aber gehofft, dass es einen Switch/Parameter gibt, der das Problem löst.
r.wiegel wrote: Zusätzlich muss Registry von Empirum-Einträgen bereinigt werden.
was genau muss man hier machen??