Какой установочный продукт использовать? InstallShield, WiX, Wise, Advanced Installer и т. Д.
В настоящее время я провожу некоторые исследования по удалению установочного пакета, который мы в настоящее время используем (Wise Installer 9), и переходу к чему-то, что будет обрабатывать такие вещи, как Windows Vista, Windows 7 и 64-битные системы. Локализация инсталляторов была бы полезна, так как у нас есть несколько французско-канадских клиентов.
В настоящее время у нас есть установки для пакетов программного обеспечения и утилит в следующих технологиях:
- Прогресс 4ГЛ
- Visual Studio 2005
- Visual Studio 2008
- .NET Compact Framework 3.5
Я уже посмотрел на WiX и InstallShield, а также на Altiris, сделав замену старой системе Wise.
Я пока что не очень много играл с InstallShield, но из всего, что я видел / установил, он, похоже, один из фаворитов индустрии. Я просмотрел некоторые теги переполнения стека, относящиеся к InstallShield, и мне любопытно узнать, что об этом говорит группа.
Я просто по умолчанию иду к ним? Насколько хорош WiX в не.NET?
5 ответов
ОБНОВЛЕНИЕ, август 2018, новый и более короткий вариант: Как создать установщик Windows. Ориентирован на подведение итогов
MSI and its major benefits
и перечислитьmajor tools available
(с ссылками на скачивание), а такжеmentioning some new, trending deployment technologies
,
Я работал в области разработки программного обеспечения в качестве менеджера по выпуску, инженера по сборке, разработчика по настройке и в качестве упаковщика приложений, инженера по SOE и инженера по развертыванию (SCCM) в крупных корпорациях.
Попутно я использовал большинство основных инструментов для упаковки (некоторые во многих разных версиях): InstallShield, мудрый (вне рынка, к сожалению), WiX, Advanced Installer (только тестирование), Orca и я протестировали некоторые другие инструменты (ссылка на "Инструменты разработки для установщика Windows" для разработчиков по http://www.installsite.org/ - довольно исчерпывающий список инструментов). Я также использовал менее распространенные инструменты для упаковки и развертывания, такие как Computer Associates Unicenter - возможно, уже не в продаже. Существует также страница, посвященная средствам разработки без MSI.
ОБНОВЛЕНИЕ: Если вам нужно средство MSI для сравнения двух версий файла MSI или просто для извлечения информации из файла MSI, вы можете прочитать этот ответ: Как я могу сравнить содержимое двух (или более) MSI файлы? (ориентирован на бесплатные инструменты MSI).
В этом посте дается обзор сильных сторон некоторых различных инструментов разработки, а также некоторые хитрости, о которых следует знать. При всем их сходстве эти инструменты на самом деле совершенно разные. Были предприняты все попытки сделать описания как можно более объективными - описание реального опыта с положительными и отрицательными сторонами.
Связанные темы развертывания
- Прежде чем углубиться в обзор различных инструментов, вот несколько других ссылок с информацией о самой технологии MSI.
- Вот общее описание задач развертывания, обычно поддерживаемых в инструментах развертывания, и описание того, почему развертывание кажется все более и более сложным.
- Многие люди думают, что MSI доставляет больше хлопот, чем стоит, и иногда это можно понять. Преимущества реальны - особенно для корпоративного развертывания, но некоторые из них являются проблемами.
- Вот описание, которое я написал о главных корпоративных преимуществах MSI (от serverfault.com). Статья выросла слишком сильно, но, надеюсь, все еще актуальна.
- В той же статье я написал о типичных реальных недостатках дизайна в файлах MSI (работа, над которой все еще ведется, - просто "дамп памяти" от "обеих сторон программного обеспечения": разработка и развертывание).
InstallShield
- Функция богатая.
- Всегда в курсе новейших технологий.
- (Настройка) Разработчик ориентирован.
- Доступны разные издания.
- Флагманский продукт AdminStudio предоставляет как инструменты для настройки, так и инструменты для переупаковки.
- Очень хорошие функции управления релизами, локализации и автоматизации для автоматизации процессов сборки. По крайней мере, лучше, чем у конкурентов.
- Для сложных продуктов управление выпуском является, пожалуй, основным пунктом продажи InstallShield. Вы можете с легкостью доставлять различные варианты: языковые версии, oem-версии, средства просмотра, выпуски приложений и т. Д., Используя флаги выпуска и аналогичные конструкции.
- Флаги выпуска в основном используются для условного исключения или включения определенных частей продукта из каждой скомпилированной установки - это часто является большой частью того, что требуется при создании профессиональных семейств установок.
- Представление выпуска в Installshield позволяет получить полный обзор всех ваших различных типов установки и выпусков. Вы видите все языковые версии и настройки выпуска, поставляемые для Интернета (один большой установочный файл) или для распространяемых носителей (внешние исходные файлы) и любые другие предоставленные вами варианты.
- Крайне важно для каждого выпуска и выпуска вы можете переопределить важные параметры, такие как название продукта, версия продукта, пакет, код продукта и обновления, а также многие другие необходимые параметры, которые должны динамически изменяться в зависимости от версии продукта и языковой версии.
- Во многих других продуктах этот тип управления выпуском и выпуском может быть намного сложнее реализовать. Для более простых установок этот тип гибкости может быть менее важным.
- API автоматизации для продукта позволяет легко " дистанционно управлять " из сценариев автоматизации сборки различных типов.
- Существуют также модули сборки командной строки (для использования на выделенных серверах сборки).
- Полная автоматизация сборок целого набора продуктов и редакций легко возможна с помощью обычной автоматизации VBScript / VBA / Javascript.
- Полная поддержка локализации с использованием строковых таблиц, используемых для поддержки различных языков настройки.
- Базовые диалоги также предоставляются в готовом виде на нескольких языках (за дополнительную плату).
- Вам нужно только локализовать свой собственный установочный контент (подписи к списку функций, любые пользовательские диалоговые окна или окна сообщений, изображения с текстом и т. Д.) - все еще много работы.
- Вы можете поставить огромную многоязычную установку. Это не рекомендуется в моем опыте по нескольким причинам (см. Раздел локализации). Худшая проблема заключается в том, что вы должны локализовать все новое и измененное содержимое на всех языках, прежде чем вы сможете доставить английскую версию. Это почти никогда не приемлемо для маркетинга / продаж. И всегда есть исправления, которые требуют, чтобы вы перестраивали и переиздавали один язык, а затем вы хотите сделать это без UAT и QA для всех других языков. Лучше предоставить отдельные сборки для каждого языка (легко реализуемые).
- Хорошая поддержка сообщества: форумы сообщества пользователей.
- Довольно хороший графический интерфейс, обычные вещи довольно просты.
- Полноценный редактор MSI-GUI.
- Очень могущественный. Несколько сложнее.
- Ограничения основных функций графического интерфейса технологии MSI вызывают некоторые затруднения и раздражающие ограничения, но это одинаково для всех средств развертывания.
- Основная причина заключается в том, что графический интерфейс пользователя MSI реализован с использованием таблиц данных внутри самого файла MSI, и это вызывает серьезные ограничения в отношении событий диалогов по сравнению с полной "моделью событий" для правильных диалогов Win32.
- Полнофункциональный язык сценариев в стиле C для пользовательских действий, называемый " Installscript ".
- Installscript теперь компилируется в нативный - или эмулируется с собственной песочницей, не знаю, какой именно. Нет необходимости устанавливать среду выполнения, как раньше.
- Между прочим, эта среда выполнения была источником некоторых довольно проблематичных проблем развертывания из-за повреждения среды выполнения, которое часто связано с DCOM, и различных несовместимостей между различными версиями среды выполнения. Вот несколько ссылок на устранение неполадок для "устаревших целей":
- Невозможно установить скрипт запуска InstallShield.
- Программа установки не может найти или обновить ISScript.msi.
- Flexera Consumer Central (для проблем с настройкой конечного пользователя).
- Хотя среда выполнения была очень проблемным источником ошибок, теперь все связанные проблемы, похоже, полностью решены, начиная с Installshield 12 и более поздних версий.
- Красиво интегрированная справка в GUI.
- Очень важно для такой сложной технологии.
- Часто очень полезно - особенно для решения общих задач.
- Стандартный формат хранения двоичных файлов не допускает никакого реального управления исходным кодом или ветвления (в отличие от WiX, который обеспечивает это из коробки). Я думаю, что есть способ сохранить проект в текстовом формате, но я никогда не использовал его. Не уверен, насколько это будет эффективно.
- Без тени сомнения, безусловно, самый плохой из всех инсталляционных продуктов.
- Справедливости ради, большинство ошибок связано со специальным типом проекта " Installscript MSI ", который реализует настраиваемую модель диалога для установок MSI (а не собственный графический интерфейс на основе таблиц, который подавляется).
- Другими словами, тип проекта Installscript MSI НЕ ДОЛЖЕН использоваться ни при каких обстоятельствах. Пожалуйста, примите это близко к сердцу, если вы все еще используете их - их особенно сложно обновить должным образом (первое развертывание может быть в порядке, но обновления ломаются). Другие типы проектов, кажется, работают хорошо.
- После отказа от Installscript MSI (что, похоже, делало большинство людей), инструмент работал довольно хорошо для меня лично (хотя и не без ошибок).
- Меня не порадовала поддержка развертывания сайтов IIS и приложений COM+. Мне нужно было использовать гибкость и настраиваемость WiX, а не простоту использования Installshield. Просто не хватало гибкости и контроля.
- Поддержка виртуальных пакетов Microsoft App-V и новых технологий виртуализации.
- Позволяет несколько новых вещей по сравнению с обычным приложением.
- Потоковое приложение - без локальной установки на машины - JIT.
- Используйте два несовместимых программного обеспечения на одном компьютере.
- Обновление через сервер.
- Контроль лицензирования - максимальное количество одновременных пользователей или привязка программного обеспечения к группе / пользователю.
- Представьте приложение быстро и легко пользователям.
- Более Microsoft маркетинг здесь.
мудрый
Мудрый официально ушел в отставку, но он воскрес раньше. К сожалению, некоторые правовые вопросы, возможно, сделали это окончательным на этот раз - насколько я знаю. Это было бы позором для такого замечательного инструмента. Он был приобретен Altiris, а затем Symantec. Похоже, что сейчас он вне рынка. Я все еще ухожу в резюме хороших мудрых особенностей:
- Быстро и легко и довольно многофункциональный.
- Очень хорошая простота использования в целом, отличный набор функций.
- Отсутствие некоторых (очень) расширенных функций, таких как IIS, расширенное управление выпусками и т. Д.
- Администратор / Repackager ориентирован.
- Меньше кода сосредоточены, чем Installshield.
- Уникально способный и гибкий графический редактор сценариев.
- Хорошо продуманная настройка конфигурации GUI.
- Также отлично подходит для небольших групп разработчиков, которые ищут быстрый и относительно простой способ развертывания своего приложения.
- Иногда немного отстает от новейших технологий (по сравнению с Installshield), но сравнительно "без ошибок".
- Интуитивно понятный графический интерфейс, общие вещи (очень) легко.
- Очень хорошая обработка конфигурации последовательности установки и пользовательских действий в редакторе стилей скрипта. Больше сценариев GUI, меньше кода.
- Твердый, очень мало существенных ошибок.
- Справочные ресурсы и поддержка сообщества не наравне с InstallShield, но все же хороши.
- Мой инструмент выбора для отладки и создания прототипов (быстрый, стабильный, простой в использовании, отличные функции сравнения).
- И что касается различий (позволяет двоичное сравнение двух файлов MSI).
- Ни один другой инструмент, который я пробовал, не приблизился к Wise для бинарных различий различных файлов MSI.
- Простота использования и ясность просмотра различий были не менее фантастическими.
- Для корпоративной упаковки такие различия могут быть очень важной частью работы, поскольку у вас есть сотни или даже тысячи различных пакетов программного обеспечения для управления во многих различных версиях.
- На субъективной ноте: мой любимый упаковочный инструмент. Очень надежный.
- Жаль, что инструмент больше не доступен.
- Мы всегда можем надеяться на "реинкарнацию" (я видел фрагменты GUI, которые выглядят как Wise в некоторых других инструментах).
WiX
- Большой плюс - исходные текстовые файлы. Нет необходимости хранить исходный код в виде двоичного файла, где практически невозможно отслеживать изменения и осуществлять надлежащий контроль версий.
- Правильные текстовые источники имеют все значение для групп разработчиков с точки зрения ветвления, управления версиями и слияния. Это качественный скачок (по моему мнению, особенно для внутренней разработки в крупных корпорациях - там, где процессы сложны, процессы быстры, а разработчиков много).
- Необходимость и использование текстовых исходных файлов были центральными при создании инструментария WiX. Вот быстрая и неполная "история WiX" с более подробной информацией. Рекомендуется прочитать, чтобы понять основы и обоснование для WiX.
- Некоторые инструменты развертывания, которые хранят установщик в виде двоичных файлов, могут в конечном итоге оказаться в ситуациях, когда в двоичном источнике обнаружатся загадочные проблемы, которые никогда не смогут быть отслежены должным образом.
- Это произошло особенно после обновлений инструмента, которые также обновили формат в источнике (по любой причине).
- Обновления часто затрагивают десятки таблиц и сотни записей, что делает невозможной задачу эффективного выявления реальной проблемы.
- Симптомы включали такие вещи, как внезапное начало медленной сборки, внезапная медленная скорость установки, необъяснимые ошибки компиляции, даже полное повреждение файла и т. Д.
- С WiX у вас есть полная прозрачность и "худоба" для вашего источника. Это просто чище и надежнее, когда все сделано правильно и автоматическое обновление источника возможно, но не вызовет каскадных изменений через десятки таблиц MSI. В сочетании с контролем версий изменения легко отслеживаются и (мы надеемся) понятны - никаких загадочных недокументированных материалов не добавлено.
- Из всего сказанного следует отметить, что обновление исходных файлов с WiX 3 до WiX 4, по-видимому, не является тривиальным. Будем надеяться, что это разовая ситуация. Я не уверен, почему это случилось честно, и у меня нет актуальной информации об этом.
- Возможно, проверьте реальные новости прямо из блога Роба Меншинга: http://robmensching.com/blog/ и блога Боба Арнсона https://www.joyofsetup.com/. Прямо изо рта лошади, как это делает Интернет - иногда это прекрасный мир;-). Ходят слухи, что они делают " черепах на всем пути ".
- Твердый, очень мало существенных ошибок.
- Для тех, кто боролся с давними, неустойчивыми, необъяснимыми ошибками в других инструментах, это - находка. {Военные истории удалены}.
- И даже лучше: проблемы на самом деле, кажется, решаются в WiX, иногда с помощью сообщества - как это подходит для набора инструментов с открытым исходным кодом. Похоже, что большую часть времени об этом заботится основная команда.
- Очень многофункциональный, но иногда довольно сложный в использовании.
- Требуется время, чтобы привыкнуть, и даже когда вы к этому привыкли, все может быть "неудобно", чтобы получить правильные результаты (особенно, если вы не используете правильно включенные вспомогательные инструменты).
- Это помогает использовать инструмент декомпилятора dark.exe для декомпиляции существующих файлов MSI в WiX XML. Это позволяет вам изучать источник WiX, не зная заранее об этом.
- Исключительная настраиваемость для сложных вещей, таких как IIS, COM+, SQL Server, разрешения, правила брандмауэра и т. Д. "Все" возможно, но иногда бывает несколько сложным.
- WiX эффективно " расширяет установщик Windows " новыми и очень необходимыми функциями. Это огромное преимущество для всех, кому ранее приходилось "накатывать свои" решения - часто для вещей, которые казались тривиальными (но все еще очень подверженными ошибкам).
- Сила этих расширений не может быть завышена. Вы можете избавиться от множества написанных самостоятельно сложных действий в пользу проверенных решений. При правильной поддержке отката! (Особо пренебрегаемая особенность в установках поставщика - по моему опыту почти все из них - вызывает нечистое состояние системы после прерванных установок).
- У меня есть личный опыт написания C++ DLL с настраиваемыми действиями для общих задач с надлежащей поддержкой отката, и объем работы был ошеломляющим - особенно обеспечение качества реальной функции отката.
- Замечательное отсутствие инструментов с графическим интерфейсом и очень мало хороших доступных образцов - особенно для WiX 4.
- Вещи, кажется, улучшаются, возможно, попробуйте это краткое резюме.
- Интересным проектом может быть IsWiX. Это стоит проверить.
- Учебные пособия по WiX: https://github.com/iswix-llc/iswix-tutorials
- Демонстрация Quick Youtube: https://www.youtube.com/watch?v=nnV_OU6fk8c
- Я устарел здесь, пожалуйста, помогите обновить это, если вы получили более актуальную информацию.
- Полная интеграция в Visual Studio, с IntelliSense.
- Очевидно, будут некоторые ограничения относительно того, какие версии Visual Studio будут поддерживаться WiX 4.
- У меня пока нет подробностей, но вам понадобится последняя версия Visual Studio. Я думаю, что есть хорошие записи в блоге от Роба и Боба об этом.
- Это бесплатно (!). Каждый разработчик может построить установку. Кто-то должен владеть им, хотя (!). В самом деле;-).
- Это тоже с открытым исходным кодом.
- "Сообщество": https://github.com/wixtoolset. И открытые вопросы: https://github.com/wixtoolset/issues/issues
- Загрузка инструментария также включает DTF (Deployment Tools Foundation). Классы.NET для работы со всеми MSI-файлами с помощью автоматизации. Смотрите образец в строке здесь. Чрезвычайно полезный и хорошего качества. Нет COM- взаимодействия, чтобы иметь дело с. Смотрите этот пост serverfault.com. И блог Криса Пейнтера.
- Как вы начали? (прямая ссылка на хорошо принятый ответ - к моему удивлению).
- Для опытных мастеров попробуйте эту статью The Code Project для быстрого начала в том, как создавать файлы MSI с WiX (WiX 3). Это действительно просто (если вы знаете MSI, это само собой разумеющееся).
- Вы также можете прочитать эту статью о переполнении стека WiX для получения дополнительных советов по быстрому запуску.
- НОВОЕ И РЕКОМЕНДУЕМОЕ: ответ на стеке, показывающий текущие минимальные изменения, необходимые для компиляции рабочего файла MSI при создании нового проекта WiX в Visual Studio: установщик WiX не устанавливает приложение Winform, созданное в Visual Studio 2017.
- И вы можете использовать dark.exe (декомпилятор MSI) для WiX, чтобы декомпилировать существующий файл MSI в надлежащий формат XML WiX, а затем изучить, как он сочетается. Очень полезно и познавательно - особенно для продвинутых функций.
- Текущая и будущая версии.
- Версия 3.1 стабильна и вышла (выпущена в мае 2017 года). Рок твердый.
- На данный момент версия 4 находится на стадии разработки (август 2017 года).
- Не ясно, когда он будет доступен для стабильного выпуска.
- По-видимому, это будет очень серьезное обновление, требующее существенной доработки существующих файлов WiX для успешного использования.
- Я не могу предоставить какие-либо подробности о том, каковы основные различия на данный момент.
- Стабильность и надежность версии 3, без сомнения, сохранились.
Расширенный установщик
- Я не использовал это для реального развития.
- Очень прост в использовании, приятный графический интерфейс.
- ОБНОВЛЕНИЕ:
- Чрезвычайно хорошая встроенная регистрация в самом инструменте во время тестовой установки. Очень впечатляюще.
- Также доступна для корпоративной переупаковки в ее " Architect Edition ".
- Функция богатая. Компилирует все виды настроек и поддерживает все новые технологии (App-X, App-V и т. Д.)
- Поддержка App-V кажется очень обширной.
- Может импортировать исходные файлы ряда других инструментов (Installshield, Inno, Wix, Wise, NSIS, Visual Studio, Desktop Bridge и т. Д.). Не проверено обширно мной.
- Насколько я вижу, хранит проекты в проприетарном текстовом формате.
- Кажется надежным и решительно скрывает некоторую сложность MSI через хороший графический интерфейс, который показывает интуитивно понятные флажки и параметры, а не флаги и свойства стиля SDK. Это хорошая вещь, и на данном этапе она полностью отсутствует в WiX.
- Похоже, это может быть полезно для создания прототипов и тестирования, очень сильный графический интерфейс и автоматические для часто используемых функций.
- Мне не хватает представления ReleaseShield с его флагами выпуска и настройками автоматизации сборки, а также с другими функциями управления выпуском (которые могут быть улучшены к настоящему времени).
- В целом надежный инструмент, который выглядит наиболее подходящим для разработчиков, ищущих простой способ развертывания своих приложений. Похож на Мудрого в этом отношении.
- Слишком мало практического опыта, чтобы писать гораздо больше. Попробуйте это.
Другие инструменты
- Orca - это бесплатный инструмент Windows SDK, который позволяет открывать, редактировать и в определенной степени сравнивать двоичные файлы MSI. Это также позволяет другие операции, такие как создание файлов преобразования для изменения файлов MSI и некоторые другие технические операции. Основной инструмент, который мне всегда нравится устанавливать и использовать. Здесь есть более обширный параграф об Orca, где обсуждается его использование (посмотрите вниз). Обычно вам нужно установить Windows SDK, чтобы получить Orca (просто установите последнюю версию и найдите инструмент).
- Мне порекомендовали бесплатный инструмент под названием " Super Orca ", как и " InstEd ". Я использовал их ненадолго, но они выглядят хорошо, и их легче достать, чем Orca (нет Windows SDK для загрузки).
- И есть также много других инструментов. Вот список инструментов с http://www.installsite.org/ с указанием того, продолжает ли инструмент активно поддерживаться или нет: http://www.installsite.org/pages/en/msi/authoring.htm (с спасибо Филу Уилсону за ссылку - я не смог воскресить его ответ).
- Я полагаю, что могу также включить ссылку на список инсталляционных программ в Википедии.
Рекомендации по инструменту?
Это не мое место, чтобы давать прямые рекомендации по инструменту. Но я полагаю, что могу сделать некоторые "наблюдения" и предоставить дополнительные ссылки для принятия решений.
Для любой серьезной внутренней команды разработчиков я бы предложил WiX. Там, где другие инструменты просты в использовании (что очень важно, а иногда и единственное, что важно), WiX отличается гибкостью, расширяемостью, стабильностью и использованием текстовых исходных файлов XML - со штрафом за некоторую вовлеченность в работу. с. А благодаря бесплатной лицензии каждый разработчик может просматривать и компилировать исходный код, а изменения легко отслеживаются, отменяются или утверждаются. Управление процессом с разработчиками, которые все обновляют в одном источнике WiX, все еще имеет свои проблемы (ничем не отличается от обычной работы по разработке - нет ничего легкого).
Для корпоративной переупаковки (которая, по общему признанию, немного выходит за рамки интересов разработчика на stackru.com), я думаю, что основными вариантами на данный момент являются Flexera AdminStudio и Advanced Installer Architect. Также доступны другие продукты, и, как всегда, installsite.org содержит подробную информацию: Инструменты: переупаковка и корпоративное развертывание.
Я думаю, что для небольших групп разработчиков, которые ищут быстрый и простой способ развертывания своих приложений, Installshield и Advanced Installer являются наиболее распространенными инструментами на основе графического интерфейса. Они предоставляют множество функций, и вы сможете быстро выполнить настройку. Как уже говорилось, иногда это единственное, что важно. Очень часто на самом деле. Тем не менее, вместо этого можно создать отличный установщик, использующий WiX - но требуется гораздо больше знаний. Есть кривая обучения, и есть некоторые серьезные ограничения - особенно в отношении GUI на данный момент - но базовая технология очень надежна и бесплатна. И, что немаловажно, есть много других инструментов (список с http://www.installsite.org/), которые также могут быть более подходящими для вашей задачи - особенно если это простое приложение, которое просто нуждается в базовых функциях развертывания. Это "несправедливо", что я не предоставил больше информации об этих инструментах, которые вполне способны, но реже используются или установлены.
Я должен прояснить, что я рекомендую WiX для корпоративных команд, поставляющих собственные приложения, потому что они могут использовать гибкость, обеспечиваемую WiX, и у них также будет доступный опыт и технические навыки, чтобы справляться со сложностью WiX. И они могут обучать новых парней, когда это необходимо. Очень важный вопрос. Изучать WiX нетривиально, если вы уже не обладаете достаточными знаниями об установщике Windows - тогда это просто пирог, но все же требуется время, потому что он настолько гибок и из-за отсутствия лучшего слова: "неудобно" - это как настоящий развитие, вы получили реальный контроль, но должны быть точными. Однажды настроить источник WiX может быть мечтой, чтобы иметь дело с - вы знаете, что происходит.
Подводя итог: если вы мелкий (или крупный) сторонний поставщик, который ищет хороший способ быстрой доставки вашего приложения вашим клиентам, вам, вероятно, лучше воспользоваться коммерческим инструментом, обеспечивающим простоту использования и быстрое решение для реализации. ограниченное количество изменений. В частности, для IIS коммерческие инструменты не смогли обеспечить гибкость, необходимую мне в прошлом. И внутренние команды разработчиков должны по крайней мере попробовать WiX.
Напоследок предостережение: Advanced Installer, InstallShield и мудрый обычно разрешают упаковывать программное обеспечение для виртуализации. Я не знаю никаких функций в WiX для этого на данный момент. Пожалуйста, добавьте комментарии или просто отредактируйте этот пост, если у вас есть информация здесь.
Главный практический совет:
Я обычно использую другие инструменты для прототипирования и WiX для реализации, если у меня есть выбор. Вы можете использовать dark.exe (декомпилятор MSI) для WiX, чтобы декомпилировать существующий файл MSI. Иногда я реализую что-то в Wise или InstallShield, компилирую MSI и декомпилирую это в формат WiX. Затем я поднимаю разметку WiX и выгружаю в свой основной файл WiX. Работает отлично и обычно очень быстро. Это в сочетании с утилитой heat.exe для автоматического создания компонентов позволило мне упаковать огромный веб-сайт IIS менее чем за 10 минут после некоторых пробных запусков. После этого у меня есть полная настраиваемость, предоставляемая WiX, с простотой использования других инструментов.
Очистка декомпилированного источника - это не пикник, но это и не ракетостроение. Нужны некоторые знания MSI, и вы некоторое время будете "возиться". Имейте в виду, что загрузка пробных версий коммерческих инструментов для создания и декомпиляции файла MSI не рекомендуется. Получающиеся файлы MSI обычно имеют водяные знаки с функциями, которые трудно удалить.
Некоторые ссылки:
Вы должны проверить бесплатную настройку Inno: в течение долгого времени я использую его, он никогда не разочаровывал меня!
Насколько хорош WiX в не.NET?
WiX имеет поддержку всех функций установщика Windows. Установщик Windows предшествует.NET.
Лично я предпочитаю WiX, чем InstallShield, потому что
- текстовый формат XML позволяет просматривать коммиты, объединять изменения между ветками
- автоматизация сборки должна включать генерацию настроек, что легко с WiX
- Файлы wixlib с определениями групп компонентов позволяют разрабатывать модульные установки. Не нужно беспокоиться о зависимостях зависимостей и т. Д.
- никаких проблем с лицензированием или развертыванием, мы просто включаем набор инструментов WiX в папку /tools наших проектов в SVN
Когда мы использовали InstallShield, все это были болевые точки. WiX действительно имеет очень крутой кривой обучения, хотя.
Я не использовал InstallShield в течение нескольких лет. На моей последней работе мы перешли от него к NSIS, главным образом потому, что его двоичный формат затруднял управление версиями, а также потому, что несколько раз исходный файл просто повреждался без надежды на восстановление. Конечно, это могло быть связано с SourceSafe!
Кроме того, это было слишком сложно. Не поймите меня неправильно - мы делали несколько достаточно сложных инсталляторов, с множеством условных путей, модулей слияния и сложных пользовательских интерфейсов, но даже для этого это было слишком, слишком сложно.
NSIS имеет отличную систему плагинов, и вы можете программировать ее с помощью плагина LogicLib, автоматически генерировать файлы удаления и многое другое.
Я унаследовал несколько проектов InstallShield (v12). Все файлы являются текстовыми /XML, и, следовательно, нет проблем с контролем версий. У нас есть машина сборки, которая использует их инструменты командной строки, которая работает хорошо. Что мне не нравится, так это (а) стоимость места разработчика и (б) ошибок.
Inno Setup очень способна / гибка, и, как правило, есть несколько способов достижения цели, что привело к крутой кривой обучения. Мы несколько версий позади их последней версии (из-за их структуры стоимости обновления). Поскольку наши продукты работают в Widows, если нам придется переключиться, я мог бы сначала изучить решение для установки Microsoft, которое поставляется с подпиской MSDN.