2010-07-01 3 views
17

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

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

  • Каталог.

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

  • Изменение файлов XML и файлов web.config.

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

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

ответ

16

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

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

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

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

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

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

+2

Да, это правильно, я имею в виду, я очень увлекаюсь Wix, и я использовал его в течение некоторого времени, но какое-то время его довольно сложно загадочно и нужно время, чтобы выполнить некоторые основные задачи, особенно если у вас нет никаких рук -на. – Thurein

+2

JustinPinkley, для нескольких экземпляров вы просмотрели элемент «Экземпляр» в документации WiX? Они очень просты в использовании. Кроме того, WiX v3.5 имеет новый элемент MajorUpgrade, который делает обновления одного лайнера. Кроме того, исправление очень легко использовать в наборе инструментов WiX. Все это документировано на одной странице в документации WiX (вы можете найти ее, выполнив поиск «исправления»). –

+2

Да, я действительно использовал элемент Instance и имею 3 экземпляра, которые можно установить. Проблема заключается не в способности Wix реализовывать экземпляры, а в том количестве времени, которое потребовалось мне, чтобы найти достаточно полную документацию для достаточного внедрения экземпляров. Файл справки определенно отсутствует там. MajorUpgrade действительно был довольно прост, но незначительные обновления - это немного сложнее, но это требует больших затрат времени на поиск способов реализации. Я знаю, что Wix является мощным, но отсутствие детальной документации, скорее всего, предотвратит использование большего количества магазинов. – 2010-07-11 03:28:23

22

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

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

  1. С Wix свободен, все в вашей команде может установить его, и, таким образом, каждый может внести свой вклад в программу установки. Если один разработчик добавляет библиотеку в проект, они могут, по мере необходимости, обновлять установщик, не дожидаясь, когда «парень установки» сделает свой бит.
  2. Нет проблем с установкой Wix на сервере сборки, что делает его подходящим для среды, в которой используется непрерывная интеграция. Он отлично сочетается с MSBuild (см. Проект Votive).
  3. Установщики Wix построены из текстовых файлов, что делает их очень легкими для контроля версий.
  4. Wix включает в себя средство развертывания инструментов (DTF), что упрощает создание пользовательских действий с использованием .Net-кода.
  5. Wix находится рядом с металлом: вы можете, как правило, применять свои знания установщика Windows прямо к Wix. Напротив, обучение Wix учит вас много о Windows Installer, который всегда хорош, когда речь заходит о поддержке развертываний.

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

  1. Wix имеет крутой кривой обучения. Если вы еще этого не сделали, проверьте WiX tutorial.
  2. WiX не является «визуальной» средой, такой как InstallShield - обычно это текст и xml. Сказав это, есть редакторы, free и commercial.
  3. В частности, касается установок IIS: Wix 3.0 работает только с API-интерфейсами метабазы ​​IIS 6.Для установки на IIS 7 вам необходимо включить Metabase Compatibility feature на целевом сервере. Полная поддержка IIS 7 поступает в Wix 3.5 - я пробовал эту бета-версию, и, похоже, пока она работает нормально.
+0

Да, это правда, мой установщик wix (3.0) не работает против IIS 7, но мое руководство не хочет использовать 3.5 coz, который все еще является бета-версией. Они также беспокоятся о крутой кривой обучения. – Thurein

+0

Но определенно, экран установки может ускорить время разработки, я полагаю. – Thurein

8

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

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

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

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

+0

Спасибо вам за ввод. Как насчет обновления и исправления? Я создал установщик с помощью wix, и он прошел хорошо, но я никогда не пробовал обновление и исправление версии с помощью wix. Я беспокоюсь, что я могу получить некоторую ошибку с процессом обновления и исправления. – Thurein

+0

Вы можете делать все виды обновлений MSI с помощью WiX, и у него есть инструменты для создания патчей. Там все, никаких дополнительных инструментов/скриптов не требуется. Единственное, что не рассматривается, это встраивание преобразований. Вы можете столкнуться с этим, когда локализуете свой установщик и внедряете в него преобразования языка. Но в SDK установщика Windows есть msidb.exe, который решает проблему. Кроме того, я могу вспомнить, что кто-то ссылался на сценарий, делающий то же самое ... –

12

Для решения точек Самуила выше ....

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

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

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

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

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

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

+0

спасибо за это. Никогда не использовал InstallShield, я никогда не смог бы дать сбалансированный взгляд! –