Написание собственного установщика setup.exe

Мне было поручено создать установщик, который будет обрабатывать и устанавливать несколько MSI-файлов. Я чуть не пошел по пути InstallShield, но вам нужно Premier Edition для создания установок Suite, и сказать, что вы платите почти 3000 фунтов стерлингов, даже не позволяет полностью настроить пользовательский интерфейс.

Для нашего последнего выпуска я написал специальный файл Setup.exe, который выглядит в той же папке, в которой он хранится, для MSI-файлов, которые мы хотим установить, а затем автоматически устанавливает каждый из них. Хотя это довольно просто, и теперь нам нужно что-то более профессиональное.

На данный момент у меня есть 2 основных варианта:

  • Используйте WiX - это бесплатно и предлагает много возможностей для настройки. Я еще не совсем уверен, что именно он может сделать, и потребуется немного времени, чтобы научиться.

  • Я могу расширить то, что у меня уже есть, и создать свой собственный установщик, который позволяет пользователю выбирать, какие функции / компоненты они хотят установить, а какие нет. Я бы предпочел это, если бы я мог заставить установщик загрузить необходимые MSI-файлы с сервера, установить их, а затем удалить их. Я просто не хочу включать отдельную папку, полную MSI-файлов с основной загрузкой установки. Будет ли это возможно без слишком больших усилий? Кроме того, с помощью этого я смогу добавить одну программу в меню "Установка и удаление программ"?

Любые идеи приветствуются:)

4 ответа

Для чего-то, что должно быть немного более профессиональным, чем ваш собственный файл setup.exe, с меньшими затратами на обучение, чем WiX и Burn, и меньшими трудностями в вашем кошельке, чем InstallShield, - я бы предложил MSI Factory, а не MSI Фабрика (это ускорило бы ваше изучение WiX), но для загрузчика, который включен.

Кривая обучения меньше, чем у Burn, и есть 90-дневная пробная версия, так что вы можете увидеть, достаточно ли она для вас.

InstallShield позволит вам настроить интерфейс установки, и за этот дорогой ценник вы получите поддержку и обслуживание (очень полезно, когда вы наращиваете с нуля).

Что бы вы ни сэкономили на первоначальной стоимости с InstallShield, вы потратите время на WiX, поэтому вам действительно нужно провести анализ затрат и выгод и выяснить, сколько стоит ваше время. InstallShield так же мощен, как и WiX, когда вы действительно начинаете понимать установщик Windows и то, что у него под рукой. Многие коммерческие разработчики будут использовать элементы обоих в зависимости от индивидуальных требований проекта.

WiX 3.6 все еще является бета-проектом, а Burn все еще находится в стадии разработки. По правде говоря, установщики InstallShield Suite довольно новы и все еще находятся в стадии разработки.

Прежде чем вы начнете волноваться из-за стоимости InstallShield, вам необходимо решить, что именно должен делать ваш setup.exe. Затем вам нужно провести анализ пробелов в возможностях между InstallShield и WiX и придумать оценки трудозатрат для того, чтобы развернуть свои собственные, сделать это в WiX и сделать это в InstallShield.

В определенных ситуациях готовые инструменты недостаточно развиты, и имеет смысл накатывать свои собственные. (Вспомните MS SQL Server, Office, Visual Studio), но для большинства бизнес-приложений вам, вероятно, просто нужно выбрать инструмент, который приблизит вас к нужному месту.

Насколько это без усилий, зависит от того, насколько сложны ваши установки, взаимозависимости и их предпосылок.

Например, вы хотите установить продукт X, но для этого требуется установленный сервер базы данных, для которого требуется обновление.net framework, для которого требуется перезагрузка.

Wix предназначен для создания MSI, так что это будет только помощь, если вы хотите создать MSI, может управлять установкой нескольких приложений.

Я бы порекомендовал проверить возможности Burn в WiX 3.6. Вы можете создать загрузчик, и он имеет возможность загружать ваши установочные пакеты с сервера. Вы можете полностью настроить его или использовать стандартное приложение начальной загрузки. Вы также можете использовать свой текущий.msis. Вам не нужно конвертировать все ваши.msis в WiX, чтобы использовать функциональность загрузчика.

Я бы рекомендовал прочитать это сообщение в блоге Роба Меншинга.

Другие вопросы по тегам