Установить щит или Wix
У меня есть довольно большое веб-приложение, разработанное с использованием asp.net 3.5, и мне нужно подготовить пакет установщика, который будет использоваться для развертывания приложения на IIS 6 и 7. Я провел много исследований по Wix и Installsheild 2010 (pro). и нужно несколько советов, прежде чем принимать решение. Я заметил, что installsheild - это довольно дорого с точки зрения лицензии, но у меня достаточно бюджета, чтобы это не было проблемой. установщик должен уметь выполнять следующие процессы.
Разверните опубликованный веб-ресурс (aspx и т. Д.).
Создать виртуальный каталог.
Создайте базу данных на сервере sql и запустите несколько сценариев инициализации.
Изменить XML-файлы и файлы web.config.
Установите разрешение на запись в файлы в виртуальном каталоге.
Я обнаружил, что обе технологии способны выполнять вышеуказанные сценарии, но я хотел бы получить личный опыт и советы.
4 ответа
Исходя из моего опыта работы с Wix и InstallShield, я бы порекомендовал использовать InstallShield, если вам не нужен достаточно простой и простой установщик. Я говорю это потому, что огромная кривая обучения Wix усложняется из-за отсутствия доступной информации
Книг по Wix нет, поэтому ваши ресурсы ограничены учебным пособием по Wix, которое является подробным и длительным, но все же не охватывает много, кроме основ, и постов в блогах, которые вы можете найти через Google. Конечно, есть много хороших постов в блоге, в которых подробно рассказывается о том, как выполнять конкретные задачи, но если у вас нет сроков, вы, вероятно, не можете позволить себе сидеть и исследовать, как делать определенные вещи в Wix по нескольку дней. Лично я обнаружил, что слишком много делаю для Wix, чтобы это было возможным решением (опять же, если только вам не нужен простой установщик)
В конечном счете, в моем случае у нас были существующие установщики, которые были разработаны с помощью InstallShield, и мы просто можем быстрее работать с ним. InstallShield также имеет свой собственный язык сценариев, который также имеет довольно хорошую документацию.
Другим большим плюсом для меня было то, что InstallShield облегчает боль в нескольких случаях (попробуйте поискать, как это сделать с помощью Wix, и вы поймете, о чем я говорю), а также обновите / исправьте. Мне удалось выполнить оба из них (особенно несколько экземпляров) за долю времени с InstallShield, чем то, что потребовалось для достижения в Wix.
Я бы посоветовал вам выбирать, исходя из ваших временных ограничений / сроков / обязательств, сложности вашего установщика и зрелости вашего продукта. Wix требует много исследований для вещей, которые InstallShield предоставляет довольно быстрый способ сделать. Это может быть еще более болезненным, если у вас есть зрелый продукт по сравнению с довольно молодым продуктом.
Надеюсь это поможет.
Создав установщик Wix, чтобы делать именно то, что вы хотите, я с радостью рекомендую его.
Преимущества Wix над InstallShield, на мой взгляд:
- Поскольку Wix бесплатен, каждый в вашей команде может установить его, и, таким образом, каждый может внести свой вклад в установщик. Если один разработчик добавляет библиотеку в проект, он может соответствующим образом обновить установщик, не дожидаясь, пока "установщик" сделает свое дело.
- Нет проблем с установкой Wix на сервере сборки, что делает его подходящим для среды, в которой вы используете непрерывную интеграцию. Он прекрасно интегрируется с MSBuild (см. Проект Votive).
- Установщики Wix построены из текстовых файлов, что делает их очень простыми для контроля версий.
- Wix включает в себя Deployment Tools Foundation (DTF), который упрощает создание пользовательских действий с использованием кода.Net.
- Wix очень близок к реальности: обычно вы можете применить свои знания установщика Windows непосредственно к Wix. Изучая Wix, вы узнаете много нового об установщике Windows, что всегда полезно для поддержки развертываний.
Чтобы уравновесить это, есть несколько вещей, о которых нужно знать:
- У Wix есть крутая кривая обучения. Если вы еще этого не сделали, ознакомьтесь с руководством по WiX.
- WiX не является "визуальной" средой, такой как InstallShield - обычно это текст и XML. Сказав это, есть редакторы, бесплатные и коммерческие.
- В частности, в отношении настроек IIS: Wix 3.0 работает только против API метабазы IIS 6. Для установки на IIS 7 необходимо включить функцию совместимости метабазы на целевом сервере. Полная поддержка IIS 7 появится в Wix 3.5 - я попробовал бета-версию этого, и до сих пор она работает нормально.
Для решения пунктов Самуила выше....
Я создал проект на 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 на десятках веток, поэтому это было очень важно для нас.)
+1 к ответу Самуила. Что касается крутой кривой обучения... если вы не понимаете, как работает базовая технология (установщик Windows), у вас будут проблемы с поддержкой вашей установки, либо InstallShield, либо WiX по вашему выбору. Но WiX рекомендует вам научиться Windows Installer правильно использовать абстракции WiX.
Я лично начал свой проект установки (огромное веб-приложение) с InstallShield, но недавно я перешел на WiX, и я рад этому. Ключевые моменты моего выбора:
- это свободно
- это XML (не нужно больше разбрасываться и сливаться)
- это дружелюбно
- он делает именно то, что вы ему указываете (не больше и не меньше)
Надеюсь, вы найдете эту информацию полезной.