Связь с загрузчиком WiX Burn с использованием встроенного канала

Я работаю над приложением, которое работает поверх пакета WiX и обменивается данными через встроенный канал (используя ManagedBundleRunner) и получает обновления о ходе выполнения и ошибках.

В настоящее время я использую стандартный загрузчик WiX. Однако я буду создавать собственный управляемый загрузчик для реализации пользовательского поведения.

Частью этого нового поведения является двунаправленная связь моего приложения с загрузчиком.

Изучив исходный код WiX (особенно движок Burn), я предложил два подхода:

1) создать канал внутри управляемого загрузчика и общаться с приложением, используя собственный протокол

2) повторно использовать существующий канал связи, предоставляемый движком Burn (m_pEngineState->embeddedConnection.hPipe)

Однако оба подхода имеют преимущества и недостатки. Повторно используя существующий канал, используемый механизмом записи и ManagedBundleRunner, у меня уже будет инфраструктура для связи. Однако это потребует модификации движка Burn.

Создание отдельного канала связи и протокола позволяет загрузчику и моему приложению взаимодействовать, не затрагивая движок Burn. С другой стороны, мне пришлось бы создавать всю инфраструктуру для приема и отправки сообщений.

Какой рекомендуемый подход в этом случае?


person john.pnvn    schedule 14.10.2015    source источник