Возможности установщика, WIX против InstallShield Express - PullRequest
19 голосов
/ 04 февраля 2010

Программистам, которые действительно продвигают свои продукты для производства, нужен установщик. (упреждающее «связанное с программированием» оправдание.)

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

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

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

Ответы [ 3 ]

10 голосов
/ 05 февраля 2010

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

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

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

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

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

6 голосов
/ 04 февраля 2010

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

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

1 голос
/ 04 февраля 2010

Функциональную матрицу для установки щита можно найти здесь:

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

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

...