Jump to content


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.
Photo

Deinstallation einer Third-Party Anwendung


5 replies to this topic

Tlorenzo

Tlorenzo
  • Full Members
  • 34 posts

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:
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

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

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:
CODE

LaunchAppAndWait("C:\\Programme\\PDFCreator\\unins000.exe","",WAIT);


Aber warum überhaupt InstallScript? Du kannst die EXE doch direkt als Custom Action aufrufen.

Tlorenzo

Tlorenzo
  • Full Members
  • 34 posts

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

Edited by Tlorenzo, 03 November 2010 - 16:38.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

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.

Tlorenzo

Tlorenzo
  • Full Members
  • 34 posts

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!

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

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.