Seite 1 von 1

MSI-Custom Actions in C++ Teil 3 - Testen

Verfasst: 24.05.2024, 14:20
von Andreas Kapust
CustomAction-DLLs werden eigentlich in das MSI eingebunden, um dann in der Installation ausgeführt zu werden. Allerdings ist es sehr umständlich jedes Mal eine MSI zu erstellen per Breakpoint mit dem Debugger in die Funktion einzusteigen, vermutlich einen Fehler zu finden, diese verbessern und das ganze Spielchen von vorn zu beginnen.

Das muss nicht sein.

Bild

Mit unserem kleinen Beispielprogramm erstellen Sie ihr MSI-Setup und können ihre Funktion bequem in der Konsolenapplikation testen.

Sie geben den jeweiligen Pfad mit _MSI_DATABASE_ an, den Pfad für das Logfile per _MSI_LOGFILE_.

Über _MSI_ENABLE_LOGGING_ kann festgelegt werden, ob es überhaupt ein Logging gibt und
_MSI_TEST_IN_UISEQUENCE_ bestimmt, ob der Aufruf in der UI oder Execute-Sequence abläuft.
Natürlich hat das Ganze auch Einschränkungen. Nicht alle Funktionen werden über diese Art des Aufrufs ausgeführt, einige kehren mit 1626 zurück (Funktion nicht ausgeführt) und verzögerte Ausführung muss simuliert werden – dazu kommen wir in dem Teil der sich mit der Art 3 (siehe Teil 1) befasst.

Der Code kann im Zusammenhang mit dem AKInstallerMSI frei verwendet werden, ansonsten bitte den Header in den Dateien beachten.
Viel Spass beim Entwickeln!

Die Konsolenapplikation und die CustomAction-Klasse finden Sie hier.