I'm working on a application, which works on top of WiX bundle, and communicates via embedded pipe (by utilizing ManagedBundleRunner) and receives progress and error updates.
Currently I use the standard WiX bootstrapper. However, I will be creating custom managed bootstrapper to implement custom behavior.
Part of this new behavior is a bidirectional communication of my application with the bootstrapper.
After exploring WiX source (especially Burn engine), I've come up with two approaches:
1) create pipe inside managed bootstrapper and communicate with the application using custom protocol
2) re-use existing communication channel provided by the Burn engine (m_pEngineState->embeddedConnection.hPipe
)
However, both approaches have advantages and disadvantages. By reusing the existing channel used by Burn engine and ManagedBundleRunner, I would already have infrastructure for the communication. However that would require modifying the Burn engine.
Creating separate communication channel and protocol enables bootstrapper and my application to communicate without affecting the Burn engine. On the other hand, I would have to create all the infrastructure for receiving and sending messages.
What is recommended approach in this case?
来源:https://stackoverflow.com/questions/33119540/communication-with-wix-burn-bootstrapper-using-embedded-pipe