Ich bin mir sicher, dass das ziemlich einfach ist, aber ich hatte es irgendwie schwer damit. Ich habe eine benutzerdefinierte Aktion, die bei der Installation ein anderes Installationsprogramm (nicht MSI) ausführt. Leider ist mir aufgefallen, dass das Installationsprogramm auch bei der Deinstallation ausgeführt wird!
Ich habe die Optionen durchgesehen, aber ich kann nicht herausfinden, wie ich das stoppen kann. Wenn mir jemand helfen könnte, wäre ich unglaublich dankbar.
Wie stelle ich eine benutzerdefinierte Aktion so ein, dass sie nur während der Deinstallation ausgelöst wird? Jede Hilfe wird sehr geschätzt Jungs!
installation
windows-installer
installshield
Zypern106
quelle
quelle
Antworten:
Fügen Sie der Aktion eine Bedingung hinzu, damit sie nur während der Installation und nicht während der Deinstallation ausgelöst wird.
Aktion wird nur während der Installation ausgeführt
Die Aktion wird während der Installation und Reparatur ausgeführt
Nur bei der Erstinstallation ausführen:
Bei Erstinstallation ausführen oder wenn Reparatur ausgewählt ist.
Verwenden Sie die folgende Bedingung, um eine Aktion nur während der Deinstallation auszuführen:
So führen Sie eine Aktion nur während des Upgrades aus:
quelle
Eine kleine Korrektur:
Um eine Aktion nur während der Deinstallation auszuführen, verwenden Sie die folgende Bedingung:
REMOVE="ALL"
Dies erscheint angemessener, da die Eigenschaft
REMOVE
die zu deinstallierenden Funktionen enthält.Wenn ich also eine Änderung vornehme, um eine Funktion zu entfernen,
REMOVE
ist dies wahr und die Aktion, die nur bei der Deinstallation ausgeführt werden sollte, wird bei der Änderung ausgeführt.Weitere Details hier auf MSDN
quelle
Ein Beispiel:
Beachten! Die Bedingung wird dem
<Custom>
Tag hinzugefügt und nicht die<CustomAction>
, die mich verwirrt hat, da auf Benutzerdefiniert das Aktionsattribut folgtquelle
Bitte seien Sie vorsichtig mit
REMOVE=ALL
. Es ist vor der Installation nicht verfügbar.Weitere Informationen finden Sie unter den folgenden Links:
http://msdn.microsoft.com/en-us/library/aa371194(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/ aa368013 (v = vs.85) .aspx
quelle
Eine Bedingung für die benutzerdefinierte Aktion, wahrscheinlich mit einer passenden benutzerdefinierten Aktion für die Deinstallation. Ich bin mir nicht sicher, welche Tools Sie verwenden, aber wenn die sekundäre Installation an eine Komponente gebunden ist, würde ich diesen Komponentenstatus verwenden. Ein Zustand von = 3 bedeutet einen Zielzustand von installiert. Ein Zustand = 2 bedeutet einen Zielzustand der Abwesenheit. Beachten Sie, dass der Status nicht festgelegt wird, wenn keine Änderung vorgenommen wird.
quelle