Связь с загрузчиком WiX Burn с использованием встроенного канала
Я работаю над приложением, которое работает поверх пакета WiX и взаимодействует через встроенный канал (используя ManagedBundleRunner) и получает обновления и сообщения об ошибках.
В настоящее время я использую стандартный загрузчик WiX. Тем не менее, я буду создавать собственный управляемый загрузчик для реализации собственного поведения.
Часть этого нового поведения - двунаправленная связь моего приложения с загрузчиком.
После изучения источника WiX (особенно движка Burn) я предложил два подхода:
1) создать канал внутри управляемого загрузчика и обмениваться данными с приложением, используя собственный протокол
2) повторно использовать существующий канал связи, предоставляемый движком Burn (m_pEngineState->embeddedConnection.hPipe
)
Однако оба подхода имеют свои преимущества и недостатки. Повторно используя существующий канал, используемый движком Burn и ManagedBundleRunner, у меня уже была бы инфраструктура для связи. Однако для этого потребуется модифицировать движок Burn.
Создание отдельного канала связи и протокола позволяет загрузчику и моему приложению обмениваться данными, не затрагивая механизм записи. С другой стороны, мне пришлось бы создать всю инфраструктуру для приема и отправки сообщений.
Какой рекомендуемый подход в этом случае?