Von benutzerdefinierten Aktionen zurückgegebene Fehlermeldungen

In diesem Abschnitt wird beschrieben, wie Nachrichten von benutzerdefinierten Aktionen gesendet werden, die tatsächlich einen Teil der Installation ausführen, indem eine Dynamic Link Library oder ein Skript aufgerufen wird. Beachten Sie, dass der benutzerdefinierte Aktionstyp 19 nur eine festgelegte Fehlermeldung sendet, einen Fehler zurückgibt und dann die Installation beendet. Der benutzerdefinierte Aktionstyp 19 führt keinen Teil der Installation durch.

Damit eine benutzerdefinierte Aktion, die eine Dynamic Link Library (DLL) verwendet, eine Fehlermeldung sendet, muss die benutzerdefinierte Aktion MsiProcessMessage aufrufen. Beachten Sie, dass benutzerdefinierte Aktionen, die von einem DoAction ControlEvent gestartet werden, mit der Methode Message Nachrichten senden können, mit MsiProcessMessage dagegen nicht. Auf Systemen, die älter als Windows Server 2003 sind, können benutzerdefinierte Aktionen, die von einem DoAction ControlEvent gestartet werden, keine Nachrichten mit MsiProcessMessage oder der Methode Message senden. Weitere Informationen finden Sie unter Senden von Nachrichten an Windows Installer mithilfe von MsiProcessMessage.

So zeigen Sie eine Fehlermeldung innerhalb einer benutzerdefinierten Aktion an, die eine DLL verwendet

  1. Die benutzerdefinierte Aktion sollte MsiProcessMessage aufrufen und die Parameter hInstall, eMessageType und hRecord übergeben. Der Handle für die Installation, Benutzerdefinierter Aktionstyp 19, kann der benutzerdefinierten Aktion wie unter Zugreifen auf die aktuelle Installationsprogrammsitzung über eine benutzerdefinierte Aktion beschrieben oder über MsiOpenProduct oder MsiOpenPackage bereitgestellt werden.
  2. Der Parameter eMessageType sollte einen der Nachrichtentypen angeben, die in MsiProcessMessage aufgeführt sind.
  3. Der Parameter hRecord der Funktion MsiProcessMessage hängt vom Nachrichtentyp ab. Siehe Senden von Nachrichten an Windows Installer mithilfe von MsiProcessMessage. Wenn die Nachricht formatierte Daten enthält, geben Sie die Nachricht in die Tabelle Error ein. Verwenden Sie dabei die Formatierung, die in Formatiert beschrieben ist.

Um eine Fehlermeldung von einer benutzerdefinierten Aktion zu senden, die Skripte verwendet, kann die benutzerdefinierte Aktion die Methode Message des Session-Objekts aufrufen.

So zeigen Sie eine Fehlermeldung innerhalb einer benutzerdefinierten Aktion an, die ein Skript verwendet

  1. Die benutzerdefinierte Aktion sollte die Methode Message des Session-Objekts aufrufen und die Parameter kind und record übergeben.
  2. Der Parameter kind sollte einen der Nachrichtentypen angeben, die in der Methode Message aufgeführt sind.
  3. Der Parameter record der Methode Message hängt vom Nachrichtentyp ab. Wenn die Nachricht formatierte Daten enthält, geben Sie die Nachricht in die Tabelle Error ein. Verwenden Sie dabei die Formatierung, die in Formatiert beschrieben ist.

Benutzerdefinierte Aktionen, die ausführbare Dateien verwenden, können mit der Methode MsiProcessMessage oder der Methode Message keine Nachricht senden, da sie keinen Handle für die Installation abrufen können.

Rückgabewerte für benutzerdefinierte Aktionen