2016-09-20 4 views
1

Bitte lesen Sie sorgfältig, wie ich erklären werde, was ich versuche zu tun. Ich habe ein Wix-Installationsprogramm, das benutzerdefinierte Aktion aufruft, um Benutzereingaben zu überprüfen. Ich möchte nächste Dialog aufrufen, wenn die Validierung erfolgreich ist und sich nicht bewegen, wenn die Validierung nicht erfolgreich istWix - Benutzerdefinierte Action Return Code - Handhabung

  1. I
  2. Die benutzerdefinierte Aktion bestätigt Benutzername und Passwort
  3. eine benutzerdefinierte Aktion haben Wenn die Validierung erfolgreich ist, die benutzerdefinierte Aktion setzt eine Eigenschaft ([CONNECTED] = 1) auf 1
  4. Wenn die Validierung fehlschlägt, wird der Eigenschaftswert auf "leer" gesetzt und dann ein Meldungsfeld angezeigt, das den Wert inkorrekt anzeigt
  5. Die benutzerdefinierte Aktion (C#) wird in my ausgeführt Dialog in der nächsten Taste
  6. Die benutzerdefinierte Aktion läuft gut, und es erscheint bei einem Fehler Hier ist das Problem Wenn es einen Fehler gibt, wird ein Popup gemacht und mein WIX-Installer springt zum Ende-Dialog (FINISH), nur um mir die Option zu geben Beenden Sie die Installation. Oder es wird mir manchmal den nächsten Dialog geben, obwohl es fehlgeschlagen ist. Hier ist der Code zum Ausführen meiner benutzerdefinierten Aktion. <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="[ButtonText_Next]"> <Publish Event="DoAction" Value="MyCustomAction">1</Publish> <Publish Event="NewDialog" Value="CustomizeDlg">CONNECTED= "1"</Publish> </Control>

Meine Frage ist, warum es nicht im aktuellen Dialog bleiben, wenn es einen Fehler bedeutet, dass es keinen 1. zurückgekommen Es geht zum Dialog auf Fertig stellen, nachdem ich auf OK klicken.

+0

Ich habe versucht, Code mehrmals zu bearbeiten. Hier ist mein Code. ' 1 CONNECTED = "1" ' – Dee

+0

jederzeit es gibt einen actionresult.failure es geht stattdessen Dialog zu beenden in diesem Dialogfeld zu bleiben – Dee

+0

Manchmal ist ein Fehler aufgrund der Dialogsequenz aufgetreten, es handelt sich nicht um einen Fehler bei benutzerdefinierten Aktionen. Versuchen Sie, Protokollnachrichten mit msiexec/i your_package.msi/L * vx your_package.log zu generieren, um weitere Details zu Ihrem Fehler zu erhalten. – sumitani

Antwort

1

Die Rückgabewerte von benutzerdefinierten Aktionen sind für die Verwendung durch Windows Installer gedacht, nicht für Sie. Durch die Rückgabe von ActionResult.Failure wird Windows mitgeteilt, dass Ihre Zertifizierungsstelle so stark ausgefallen ist, dass die Installation beendet werden muss. Wenn Ihre Zertifizierungsstelle einwandfrei funktioniert und den Installationsprozess nicht beeinträchtigt, geben Sie ein Erfolgsergebnis zurück. Verwenden Sie Eigenschaftswerte, um Benutzerergebnisse anzugeben.

Nach meiner Erfahrung ist die üblichere Methode, um mit dieser Art von Dialog umzugehen, die normale Sequenz von einem Dialog zum nächsten zu verwenden. Der einzige Unterschied besteht darin, dass Sie den Dialog mit der Schaltfläche "Weiter" und "Aktivieren" starten, wenn Ihre Benutzerüberprüfung erfolgreich ist.

+0

Ich habe meine nächste Schaltfläche basierend auf Eigenschaft Ergebnis fortfahren. Danke für die Antwort, ich habe es akzeptiert. – Dee

Verwandte Themen