Installshield или Wix

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

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

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

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

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

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

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


person Thurein    schedule 01.07.2010    source источник


Ответы (4)


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

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

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

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

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

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

person Community    schedule 02.07.2010
comment
Да, это правильно, я имею в виду, что мне нравится Wix, и я использую его в течение некоторого времени, но иногда это довольно сложно, загадочно и требует времени для выполнения некоторых основных задач, особенно если у вас нет рук- на. - person Thurein; 05.07.2010
comment
ДжастинПинкли, для нескольких экземпляров вы смотрели на элемент Instance в документации WiX? Они действительно просты в использовании. Кроме того, в WiX v3.5 появился новый элемент MajorUpgrade, который делает обновления одной строкой. Кроме того, исправление очень просто использовать в наборе инструментов WiX. Все это задокументировано на одной странице в документации WiX (вы можете найти ее, выполнив поиск по исправлению). - person Rob Mensching; 11.07.2010
comment
Да, на самом деле я использовал элемент Instance, и у меня есть 3 доступных для установки экземпляра. Проблема заключается не в способности Wix реализовывать инстансы, а в количестве времени, которое мне потребовалось, чтобы найти достаточно подробную документацию для достаточной реализации инстансов. Файла справки там явно не хватает. MajorUpgrade был действительно довольно простым, но незначительные обновления намного сложнее, что хорошо, но требует больше времени на поиск того, как реализовать. Я знаю, что Wix мощен, но отсутствие подробной документации, вероятно, помешает большему количеству магазинов использовать его. - person ; 11.07.2010
comment
Поправочка, есть несколько книг по WiX. У меня есть amazon.com/WiX-Developers-Guide- Windows-Installer/dp/1849513724 у меня на столе :) - person saschabeaumont; 21.04.2011
comment
Ты прав. Однако на момент публикации эта книга все еще должна была быть опубликована... но я знал об этом и ожидал ее выпуска. :) - person ; 01.06.2011
comment
Этот ответ был очень хорошо продуман для того времени, но теперь он очень неточен в отношении Wix. Теперь у Wix есть много книг и целая компания: firegiant.com Они предлагают консультации и рекомендации, а также даже написать свои установщики для вас. Обратите внимание, я не работаю на них и не имею какой-либо принадлежности, я просто хотел указать на более зрелую поддержку, которую теперь предлагают. - person cmaynard; 22.04.2015

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

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

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

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

  1. У Wix действительно крутая кривая обучения. Если вы еще этого не сделали, ознакомьтесь с руководством по WiX.
  2. WiX не является «визуальной» средой, такой как InstallShield — обычно это текст и xml. Сказав это, есть редакторы, бесплатные и коммерческий.
  3. В частности, в отношении настроек IIS: Wix 3.0 работает только с API-интерфейсами метабазы ​​IIS 6. Для установки на IIS 7 вам необходимо включить Функция совместимости метабазы на целевом сервере. Полная поддержка IIS 7 появится в Wix 3.5 — я пробовал бета-версию, и пока она работает нормально.
person Samuel Jack    schedule 01.07.2010
comment
да, это правда, мой установщик wix(3.0) не работает с IIS 7, но мое руководство не хочет использовать 3.5, потому что это все еще бета-версия. Их также беспокоила крутая кривая обучения. - person Thurein; 01.07.2010
comment
Но определенно, я полагаю, что Install Shield может ускорить время разработки. - person Thurein; 01.07.2010

Чтобы ответить на вопросы Самуэля выше....

  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 в десятках веток, поэтому для нас это было очень важно.)

person Christopher Painter    schedule 01.07.2010
comment
Спасибо за это. Никогда не пользовавшись InstallShield, я никогда не смогу дать сбалансированное представление! - person Samuel Jack; 02.07.2010

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

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

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

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

person Yan Sklyarenko    schedule 01.07.2010
comment
Спасибо за ваш вклад. Как насчет обновления и исправления? Я создал установщик с помощью wix, и он прошел хорошо, но я никогда не пробовал обновлять версию и исправлять с помощью wix. Я беспокоюсь, что могу столкнуться с какой-то ловушкой в ​​​​процессе обновления и исправления. - person Thurein; 02.07.2010
comment
Вы можете выполнять все виды обновлений MSI с помощью WiX, и у него также есть инструменты для создания исправлений. Это все есть, никаких дополнительных инструментов/скриптов не требуется. Единственное, что не рассматривается, — это встраивание преобразований. Вы можете столкнуться с этим при локализации установщика и встраивании в него языковых преобразований. Но в SDK установщика Windows есть msidb.exe, который решает проблему. Кроме того, я могу вспомнить, что кто-то ссылался на скрипт, делающий то же самое... - person Yan Sklyarenko; 02.07.2010