Вступление
Начнем с терминов:
- MSI — штатный формат для распространения ПО в MS Windows.
- WiX — сокращенное название от WiX Toolset (Windows Installer XML).
На данный момент, WiX стал де-факто стандартным инструментом для создания MSI пакетов. К нему существует масса вспомогательных инструментов-оберток, решающих те или иные задачи (python-wix
, go-msi
, electron-wix-msi
и пр.). Иными словами, изготовление MSI пакетов оформилось в небольшую отдельную отрасль со своими гуру, сертификациями и прочими сопутствующими атрибутами. И у Windows-программистов под руками широкий выбор инструментария для создания инсталляторов ПО. На Хабре уже не раз были статьи, посвященные WiX: 1, 2, 3, 4.
Но существующий подход WiX страдает двумя серьезными недостатками:
- Необходимые для создания MSI пакета WXS файлы чудовищно громоздки и весьма низкоуровневые — их написание требует специфических знаний Windows Registry, внутренней базы MSI пакета и прочих нюансов. Для крупных проектов и корпораций держать отдельных специалистов по изготовлению инсталляторов не проблема. Для средних и мелких проектов это становится достаточно высоким порогом вхождения.
- Сборка MSI пакетов с использованием WiX требует обязательно Windows сервер. Для разработчиков под MS Windows этот пункт покажется странным, но для тех, кто участвует в кросс-платформенных проектах, дополнительный "железный" Windows-сервер или Windows-инстанс в облаке, как пятое колесо в телеге: и в плане затрат и в плане интеграции.Читать полностью »