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
- он делает именно то, что вы ему поручаете (не больше и не меньше)
Надеюсь, вы найдете эту информацию полезной.