ich teste gerade das Paketieren mittels Empirum in einer Testumgebung.
Hierzu möchte ich auf einem Rechner mit alter Adobe Reader Version die aktuellste Version installieren und dabei ältere deinstallieren sowie die Registry bereinigen.
Installation und Update der aktuellsten Version funktioniert.
Das erste Problem, auf das ich gestossen bin ist folgendes:
Ich versuche, aus der Registry bestimmte Keys vor der Installation des neuen Pakets zu löschen.
Ich möchte mehrere keys löschen, daher habe ich mehrere if's verbaut:
Dazu habe ich folgendes gebaut:
Code: Select all
[Product]
If DoesRegKeyExist("HKLM,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Adobe Reader 9.3 9.3.0'") =="1" Then "Reg:DelOldKey2" EndIf
If DoesRegKeyExist("HKLM,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Test key 1.0 1.0.0'") =="1" Then "Reg:DelOldKey1" EndIf
;#FileCheckMachine, MACHINE
;#FileCheckClient, CLIENT
;ReplaceEnv <Variable>
#Set:Product, DONTDELETE
#Set:Update, DONTDELETE
#Reg:OnUninstallProduct, DELETE
#Reg:Product, DONTDELETE
#Ini:Product, DONTDELETE
#Security:Product
#Set:Uninstall, DELETE
#Set:ChangeMSISourcelist, DONTDELETE
[Reg:DelOldKey1]
-HKLM,"'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Test key 1.0 1.0.0'"
[Reg:DelOldKey2]
-HKLM,"'\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Adobe Reader 9.3 9.3.0'"
Wenn der Name keine Punkte enthält, gehts einwandfrei.
Frage1:
Mache ich einen Fehler in der Syntax?
Und meine 2. Frage:
Kann ich eigentlich eine if Abfrage bauen, die einen registry prüft, und wenn dieser vorhanden ist erst mal ein msiexec /x auf den key macht und dann erst in den Teil der Installation springt?
Die Idee ist klar, erst mal alles alte runter, dann das neue drauf.
Hat jemand da zufällig ein Beispiel parat?
Gruesse