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.
Deinstallation einer Third-Party Anwendung
Started by
Tlorenzo
, Nov 02 2010 19:10
5 replies to this topic
Posted 02 November 2010 - 19:10
Guten Abend zusammen!
Ich verwende InstallShield 2011 Professional und erstelle gerade eine neues Setup (Basic MSI).
Die Installation der Daten und der benötigten Zusatzanwendungen funktioniert problemlos. Leider besitze ich aktuell noch ein Problem bei der Deinstallation.
Ich möchte bei der Deinstallation die Anwendung "PDFCreator" vom PC entfernen. Dazu habe ich bereits verschiedene Möglichkeiten ausprobiert, aber die Deinstallation wird einfach nicht ausgeführt. Über div. "SdShowMsg" habe ich sichergestellt, dass die Deinstallations-Function ausgeführt wird. Die Anwendung wird dennoch nicht deinstalliert.
Versuch 1:
Ich verwende InstallShield 2011 Professional und erstelle gerade eine neues Setup (Basic MSI).
Die Installation der Daten und der benötigten Zusatzanwendungen funktioniert problemlos. Leider besitze ich aktuell noch ein Problem bei der Deinstallation.
Ich möchte bei der Deinstallation die Anwendung "PDFCreator" vom PC entfernen. Dazu habe ich bereits verschiedene Möglichkeiten ausprobiert, aber die Deinstallation wird einfach nicht ausgeführt. Über div. "SdShowMsg" habe ich sichergestellt, dass die Deinstallations-Function ausgeführt wird. Die Anwendung wird dennoch nicht deinstalliert.
Versuch 1:
CODE |
LaunchAppAndWait("C:\Programme\PDFCreator\unins000.exe","",WAIT); |
Ergebnis:
Der Pfad zur Datei ist korrekt, die Deinstallation wird nicht gestartet. Führe ich den Befehl manuell über die CMD aus, wird alles deinstalliert.
Versuch 2:
CODE |
LaunchAppAndWait("Msiexec.exe","/x{0001B4FD-9EA3-4D90-A79E-FD14BA3AB01D} /qb",WAIT); |
Ergebnis:
Es erscheint eine Windows Meldung, dass bereits eine Installation ausgeführt wird und die weitere Installation nicht ausgeführt werden kann.
Versuch 3:
CODE |
UninstallApplication ( "\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0001B4FD-9EA3-4D90-A79E-FD14BA3AB01D}" , "/silent" , LAAW_OPTION_WAIT ); |
Ergebnis:
Identisch zu Versuch 1.
Könnt ihr mir bitte weiterhelfen?
Vielen Dank bereits im Voraus.
Gruß,
tlorenzo
Posted 03 November 2010 - 09:37
Also wenn es sich um ein MSI-Setup (siehe Versuch 2) handelt, dann ist das Problem, dass sich immer nur ein MSI-Setup in der Execute-Sequenz befinden darf. Aber das gleiche Problem müsstest du dann auch bei der Installation haben.
Bei Versuch 1 und 3 ist das Problem, dass in String-Konstanten die Backslashes doppelt geschrieben werden müssen, sonst werden sie als Steuerzeichen (z.B. \n für Zeilenumbruch) interpretiert werden:
Bei Versuch 1 und 3 ist das Problem, dass in String-Konstanten die Backslashes doppelt geschrieben werden müssen, sonst werden sie als Steuerzeichen (z.B. \n für Zeilenumbruch) interpretiert werden:
CODE |
LaunchAppAndWait("C:\\Programme\\PDFCreator\\unins000.exe","",WAIT); |
Aber warum überhaupt InstallScript? Du kannst die EXE doch direkt als Custom Action aufrufen.
Stefan Krüger
InstallSite.org twitter facebook
Posted 03 November 2010 - 10:09
Guten Morgen Stefan,
vielen Dank für dein Feedback. Die Deinstallation funktioniert nun.
Weshalb IS? Die Third-Party Anwendungen werden während der Installation mitinstalliert. Ich habe hier nur ein vereinfachtes Beispiel gepostet. Der Pfad für die PDFCreator-Uninstalldatei ist nicht immer identisch. Diesen kann ich nur über das Auslesen der Registry ermitteln. Deshalb IS und nicht Custom Action.
Ich hätte trotzdem noch eine Frage zu meinem 2. Versuch. Wie kann man diese Meldung umgehen? Ich hatte dieses Problem bereits mit einem anderen Setup. Wie kann man eine weitere MSI-Datei aus einem Basis MSI zur Laufzeit ausführen?
Gruß,
tlorenzo
vielen Dank für dein Feedback. Die Deinstallation funktioniert nun.
Weshalb IS? Die Third-Party Anwendungen werden während der Installation mitinstalliert. Ich habe hier nur ein vereinfachtes Beispiel gepostet. Der Pfad für die PDFCreator-Uninstalldatei ist nicht immer identisch. Diesen kann ich nur über das Auslesen der Registry ermitteln. Deshalb IS und nicht Custom Action.
Ich hätte trotzdem noch eine Frage zu meinem 2. Versuch. Wie kann man diese Meldung umgehen? Ich hatte dieses Problem bereits mit einem anderen Setup. Wie kann man eine weitere MSI-Datei aus einem Basis MSI zur Laufzeit ausführen?
Gruß,
tlorenzo
Edited by Tlorenzo, 03 November 2010 - 16:38.
Posted 07 November 2010 - 17:22
QUOTE |
Wie kann man eine weitere MSI-Datei aus einem Basis MSI zur Laufzeit ausführen? |
Das empfohlene Verfahren ist "chaining", also Aufrufen der MSIs nacheinander.
Technisch ist es auch möglich, während der UI-Sequenz ein weiteres MSI aufzurufen, aber nicht in der Execute Sequenz. Das hat aber einige Nachteile: Wenn das Setup im Silent oder Basic-UI Modus ausgeführt wird, dann wird die UI-Sequenz komplett übersprugen, das MSI also nicht aufgerufen.
Technisch ist es auch möglich, während der UI-Sequenz ein weiteres MSI aufzurufen, aber nicht in der Execute Sequenz. Das hat aber einige Nachteile: Wenn das Setup im Silent oder Basic-UI Modus ausgeführt wird, dann wird die UI-Sequenz komplett übersprugen, das MSI also nicht aufgerufen.
Stefan Krüger
InstallSite.org twitter facebook
Posted 08 November 2010 - 16:11
Hallo Stefan,
danke für die Info.
Wenn ich dich richtig verstanden habe, muss ich mein MSI Setup fertigstellen, bevor ich das nächste MSI starte? Ich führe meine CAs bisher alle nach der Execute Sequenz aus. Kannst du mir kurz erklären, wie ich das anstellen kann?
Danke!
danke für die Info.
Wenn ich dich richtig verstanden habe, muss ich mein MSI Setup fertigstellen, bevor ich das nächste MSI starte? Ich führe meine CAs bisher alle nach der Execute Sequenz aus. Kannst du mir kurz erklären, wie ich das anstellen kann?
Danke!
Posted 10 November 2010 - 13:19
QUOTE |
muss ich mein MSI Setup fertigstellen, bevor ich das nächste MSI starte |
ja, richtig
QUOTE |
Kannst du mir kurz erklären, wie ich das anstellen kann? |
Im Prinzip über eine externe exe die ein MSI nach dem anderen aufruft. InstallShield hat für diesen Zweck eine setup.exe die weitere MSis starten kann und zwar als Prerequisites. Es gibt einige vordefinierte Prerequisites (die mit dem dunkelblauen Icon bei Redistributables) und man kann eigene erstellen (Tools > Prerequisite Editor) buw. vorhandene kopieren und anpassen.
Stefan Krüger
InstallSite.org twitter facebook