Поддержка установщика, WIX по сравнению с InstallShield Express

Программистам, которые на самом деле способствуют их продукты производству, нужен установщик. (упреждающее "программирование связало" выравнивание.)

Для развертывания нового пакета внутренних корпоративных приложений и сервисов, я пытаюсь решить между использованием WIX и выпуском InstallShield Express, который идет с Visual Studio 2010.

Я посмотрел, но не нашел матрицу функции, которая выделяет функции, которые не находятся в специальном выпуске. Я ожидаю, что WIX будет обычно довольно способным, но более трудным использовать, и услышал о ситуациях, что WIX не поддерживает хорошо.

Кто-либо нашел матрицу функции или имеет другие рекомендации на долгосрочном лучшем способе справиться с внутренним развертыванием?

19
задан Community 23 May 2017 в 11:52
поделиться

3 ответа

Я считаю, что wix - отличный выбор (несмотря на очень крутой курс обучения), если вам нужно управлять установщиками в сложной среде, потому что

  • определения настроек хранятся в формате XML.
  • он дает вам полный контроль над базовой технологией установщика Windows; схема XML обычно точно соответствует схеме базы данных установщика Windows (что также является основной причиной того, почему кривая обучения так крута)
  • Легко интегрировать в вашу автоматизированную сборку
  • Части установки могут быть создается автоматически
  • Он позволяет определять небольшие повторно используемые модули и управлять сложными зависимостями между ними.
  • Отсутствие затрат или проблем с лицензированием (до wix нам всем приходилось использовать один «Installshield PC»)

Почему формат XML является преимуществом: он позволяет вам в полной мере использовать системы управления версиями кода, такие как Subversion или Mercurial. Просматривать изменения, изучать историю или даже объединять изменения в разных ветках - это несложно. Сравните это с проектами installshield, которые представляют собой непрозрачные двоичные капли.

Что я имею в виду под управлением сложными зависимостями: в нашем случае у нас есть большой пул многократно используемых библиотек компонентов со сложным набором зависимостей между ними, а также множество приложений, которые были созданы поверх этого. До wix это был кошмар, когда где-то была введена новая зависимость: ВСЕ настройки нужно было обновлять.

Теперь с wix у нас есть ComponentGroup для каждой библиотеки, организованная в пару wixlib .Каждая группа компонентов ссылается на другие группы компонентов, от которых она зависит, с помощью ComponentGroupRef . Разработчикам установки приложения нужно только сослаться на группы компонентов с прямыми зависимостями, а wix сделает все остальное, следуя ссылкам. В результате для введения новой зависимости требуется только одно локальное изменение. Наши автоматизированные сборки и wix сделают все остальное, чтобы восстановить все настройки.

10
ответ дан 30 November 2019 в 05:01
поделиться

Матрицу функций для Install Shield можно найти здесь:

http://www.flexerasoftware.com/products/installshield/features.htm

​​Однако для раздела IIS (я предполагаю, что вам нужен IIS, основываясь на ссылке на мой предыдущий вопрос) все, что он говорит, является «Ограниченным». Вам решать, что означает Limited, но я уверен, что она не будет поддерживать развертывание на уровне предприятия.

1
ответ дан 30 November 2019 в 05:01
поделиться

InstallShield Express предназначен для базовых развертываний (это не что иное, как прославленный WinZip). Вы также можете проверить мой любимый AdvancedInstaller . У них также есть бесплатная экспресс-версия, но я думаю, что обе они вам не пригодятся, потому что, если вам нужно что-то делать с IIS, MS SQL, Active Directory, GAC и т. Д., Вам понадобятся версии корпоративного уровня. WiX бесплатен, но кривая обучения настолько крутая, что не стоит учиться. Я сожалею, что когда-либо узнал об этом.

Если вам это нужно только для внутреннего развертывания и вы не можете потратить 1000 долларов на программу установки, просто создайте свой собственный «установочный» проект с нуля. Пространство имен System.EnterpriseServices.Internal содержит некоторые полезные оболочки для IIS, GAC и т. Д. System.Configuration.Install.ManagedInstallerClass может помочь вам в развертывании служб Windows. Другими словами, вы можете создать свою собственную программу с нуля, которая сможет выполнить все необходимые шаги для развертывания вашего основного продукта. Многие компании не используют для своих флагманских продуктов коммерческие установщики, а делают свои собственные.

6
ответ дан 30 November 2019 в 05:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: