While digging into BootstrapperApplication (BA) methods and events, I implemented OnExecuteMsiMessage, and I was able to see the messages being returned by my MSI during installation process. That also includes ActionData with some other information.
Questions:
I'm aware that we can write managed custom actions now, but just in case there are possibilities to write methods in BA instead of custom actions and call these similarly as we schedule custom actions in MSI.
What should I do?
Two quick answers:
Yes. In fact, this is the expected behavior. Bundles are designed to create a seamless installation experience. Providing a single user interface in your BootstrapperApplication is part of that.
No. The BA does not run elevated so it cannot modify machine state. If you are changing the machine, it should be part of the transaction in an MSI. The BA should only be responsible for interacting with the user (aka: take input, show progress, etc).