2017-01-23 8 views
3

Ich habe eine Anforderung, bei der ich eine benutzerdefinierte Aktion ausführen muss, wenn das Installationsprogramm fehlschlägt (entweder automatisch oder manuell fehlgeschlagen, indem ActionResult.Failure von einer anderen benutzerdefinierten Aktion zurückgegeben wird). Ich versuchte <Custom Action="CallMe" After="InstallFinalize"></Custom> , aber die CA wird nicht aufgerufen. Jede Hilfe wird geschätzt.Wix: Welche CustomAction wird aufgerufen, bevor der Fehlerbildschirm angezeigt wird?

Edit: Aus Logs herausgefunden, dass es "FatalError" benutzerdefinierte Aktion ist. Aber dann tut dies <Custom Action="CallMe" Before="FatalError"></Custom> wirft Error 8 Unresolved reference to symbol 'WixAction:InstallExecuteSequence/FatalError' in section 'Product:*'

+0

Was CallMe benutzerdefinierte Aktion tut? Die beste Vorgehensweise besteht darin, eine Rollback-Zertifizierungsstelle für jede ausgestellte Zertifizierungsstelle zu implementieren. Im Falle eines Fehlers kehrt die Maschine zu ihrem vorherigen Zustand zurück. –

+0

Ich wollte nur loggen. Nach meinen Recherchen können wir nichts von benutzerdefinierten Aktionen in UISequence (ausgelöst von Kontrollereignissen). Ich plane, alles in ein statisches Zeichenfolgenobjekt zu schreiben, fügen Sie die Protokolle weiterhin in dieses Zeichenfolgenobjekt ein. Bei Erfolg kann ich es mit session.Log in die Protokolldatei ablegen. Ich würde das gleiche bei fehlgeschlagener Installation auch tun. [Dieser Hack] (http://stackoverflow.com/questions/3494101/wix-c-sharp-custom-action-logging-not-working#) wäre meine zweite Option. – Vasudev

+0

Haben Sie versucht: Die Werte für OnExit sind Erfolg, Abbrechen, Fehler, Aussetzung –

Antwort

1

Sie

verwenden können
<Custom Action="CallMeCancel" OnExit="cancel" /> 
    <Custom Action="CallMeError" OnExit="error" /> 

Die Werte für OnExit Erfolg sind, brechen, Fehler, suspendieren

Verwandte Themen