Installshield или Wix

У меня есть довольно большое веб-приложение, разработанное с использованием asp.net 3.5, и мне нужно подготовить пакет установщика, который будет использоваться для развертывания приложения в IIS 6 и 7. Я провел много исследований по Wix и Installsheild 2010 (pro), и перед принятием решения необходимо получить некоторые рекомендации. Я замечаю, что installsheild - это довольно большой расход с точки зрения лицензии, но для меня у меня достаточно бюджета, так что это не проблема. установщик должен иметь возможность выполнять следующие процессы.

  • Разверните опубликованный веб-ресурс  (aspx и т.д.).

  • Создать виртуальный  Каталог.

  • Создать базу данных на sql  сервера и запустить некоторую инициализацию  скрипты.

  • Измените файлы XML и  файлы web.config.

  • Установите  разрешение разрешить  файлов в виртуальном каталоге.

Я обнаружил, что обе технологии способны выполнять вышеуказанные сценарии, но я хотел бы получить личный опыт и советы.

Ответ 1

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

В Wix нет книг, поэтому ваши ресурсы ограничены учебником Wix, который является подробным и длительным, но не охватывает намного больше, чем основы, и сообщения в блогах, которые вы найдете через Google. Конечно, есть много хороших сообщений в блогах, в которых подробно рассказывается о том, как выполнять конкретные действия, но если у вас нет крайних сроков для встречи, вы, вероятно, не можете позволить себе сидеть и исследовать, как делать конкретные вещи в Wix в течение нескольких дней за раз. Лично я обнаружил, что слишком много сделал для Wix, чтобы быть приемлемым решением (опять же, если вам не нужен только простой установщик)

В конечном счете, в моем случае у нас были существующие инсталляторы, которые были разработаны с помощью InstallShield, и мы просто можем быстрее работать с ним. У InstallShield также есть собственный язык сценариев, который также имеет довольно хорошую документацию.

Еще один большой плюс для меня заключался в том, что InstallShield облегчает боль из нескольких экземпляров (попробуйте найти, как это сделать с Wix, и вы поймете, что я говорю) и обновления/исправления. Я смог выполнить оба из этих (особенно нескольких экземпляров) за небольшую часть времени с помощью InstallShield, чем то, что потребовалось для выполнения в Wix.

Моим советом будет выбирать, исходя из ваших временных ограничений/сроков/обязательств, сложности вашего установщика и зрелости вашего продукта. Wix требует много исследований для вещей, которые InstallShield предоставляет довольно быстрый способ сделать. Это может быть еще более болезненным, если у вас есть зрелый продукт по сравнению с довольно молодым продуктом.

Надеюсь, что это поможет.

Ответ 2

Создав установщик Wix, чтобы сделать именно то, что вы хотите сделать, я бы с радостью порекомендовал его.

Преимущества Wix над InstallShield, как я вижу:

  • Так как Wix свободен, все в вашей команде могут его установить, и поэтому каждый может внести вклад в программу установки. Если один разработчик добавляет библиотеку в проект, они могут, по мере необходимости, обновлять установщик, не дожидаясь, когда "парень установки" сделает свой бит.
  • Нет проблем с установкой Wix на сервере сборки, что делает его подходящим для среды, в которой вы используете Continuous Integration. Он отлично сочетается с MSBuild (см. Проект Votive).
  • Установщики Wix построены из текстовых файлов, что упрощает управление версиями.
  • Wix включает в себя Deployment Tools Foundation (DTF), который упрощает создание пользовательских действий с использованием кода .Net.
  • Wix близок к металу: вы можете обычно применять свои знания к установщику Windows прямо к Wix. Напротив, обучение Wix учит вас многому о Windows Installer, который всегда хорош, когда речь идет о поддержке развертываний.

Чтобы сбалансировать это, нужно знать несколько вещей:

  • У Wix есть крутая кривая обучения. Если вы еще этого не сделали, ознакомьтесь с инструкцией по WiX.
  • WiX не является "визуальной" средой, такой как InstallShield - обычно это текст и xml. Сказав это, есть редакторы, бесплатно и коммерческий.
  • В частности, относится к настройкам IIS: Wix 3.0 работает только с API-интерфейсами метабазы ​​IIS 6. Для установки на IIS 7 вам необходимо включить

Ответ 3

Чтобы адресовать очки Сэмюэля выше....

  • Я создал проект CodePlex, который называется IsWiX, который решает проблему демократизации. Вы используете его с WiX для создания модулей слияния, а затем потребляете модули слияния с помощью InstallShield, чтобы получить лучшее из обоих миров. Это позволяет разработчику использовать InstallShield и десятки моих разработчиков для использования IsWiX/WiX. XML все еще может быть отмечен дополнительными метаданными, поэтому мы не ограничены тем, что могут описывать модули.

  • У InstallShield есть автономный механизм сборки, который интегрируется с MSBuild/TFS и обеспечивает интерфейс автоматизации. Здесь нет преимущества для WiX.

  • InstallShield также является текстовым файлом. Это более уродливый формат DTD, но IsWiX решает эту проблему, абстрагируя часто меняющиеся части из редко меняющейся части установщика.

  • Я очень рекомендую использовать DTF с помощью InstallShield. В конце концов, экспортированная функция типа 1 одинакова для любого инструмента на основе MSI.

  • У InstallShield есть прямой редактор, который показывает основные таблицы. Это фактически ближе к металлу, а затем WiX, который использует DSL на основе XSD для вывода металла. В общем, есть действительно хорошие вещи о WiX и InstallShield, и я использую их вместе для создания чрезвычайно сложных инсталляторов.

PS-IsWiX много думал о хэшировании и сортировке для решения проблем слияния ветвей. (Мы используем Base Clearcase на десятках веток, поэтому это было очень важно для нас.)

Ответ 4

+1 к Самуилу ответ. Что касается крутой кривой обучения... если вы не понимаете, как работает базовая технология (установщик Windows), у вас возникнут проблемы с поддержкой вашей установки - InstallShield или WiX, которые вы выберете. Но WiX рекомендует вам научиться Windows Installer правильно использовать абстракции WiX.

Я лично начал мой проект установки (огромное веб-приложение) с InstallShield, но недавно перешел на WiX, и я рад этому. Основные моменты моего выбора:

  • бесплатно
  • это XML (больше нет боли и слияния)
  • он дружелюбен к NAnt
  • он делает именно то, что вы ему поручаете (не больше и не меньше)

Надеюсь, вы найдете эту информацию полезной.