все что связано с моей работой

Учебник WIX

Windows Installer XML (WiX)- это набор инструментов, который создает инсталляционные пакеты Windows, используя описание в XML. Набор инструментов обеспечивает и набор утилит для командной строки, которые разработчики могут интегрировать в свой Makefile (старый стиль) или использовать новые технологии MSBuild из интегрированных сред разработки, таких как Visual Studio от Microsoft или SharpDevelop, для создания своих MSI и MSM инсталляторов.

WiX является проектом с открытым кодом, изначально разработанным в Microsoft, и поддерживается Роб Mensching. Вы можете скачать последнюю версию бинарных релизов и их исходный код. Этот учебник охватывает стабильную версию 3.0. Набор инструментов написан на C# и для запуска требует .NET Framework 2.0 с Service Pack 1. Однако это относится только к работе самого инструментария WiX. Инсталляционные пакеты, созданные с помощью набора инструментов, не требуют какого-либо дополнительного программного обеспечения для установки на целевом компьютере. Точно так же может быть несколько дополнительных утилит, необходимых для некоторых специальных применений (модули слияния, патчи), но только на вашем компьютере сборки пакета. Клиенту нужен будет только готовый и автономный установочный пакет, больше ничего.

Существует сообщество разработчиков и пользователей Wix, список рассылки которых находится на сайте SourceForge. Это лучшее место, чтобы спросить совета по любому аспекту WiX. Если у вас уже есть учетная запись в SourceForge, вы можете подписаться на веб-сайте. Или, самый простой способ, отправить пустое сообщение на адрес подписки. Вы должны подписаться, прежде чем вы сможете задать любой вопрос, без этого пользователи будут считать ваши сообщения спамом …

Введение

Завершение разработки приложения не означает окончания работ над проектом. В последние годы пользователи ждут комплексное решение установки вашего продукта и, так как установка — это самая первая часть знакомства конечного пользователя с вашим продуктом, важность ее нельзя недооценивать.

Традиционные программные инструменты установки, которые использовались, были в основном на базе сценариев, которые описывали различные этапы развертывания приложения для установки на целевой машине: файлы для копирования, параметры реестра, которые должны быть созданы, драйверы устройств и службы, которые должны быть запущены. Технология, лежащая в основе установщика Windows, в то время как он остался привычным для конечных пользователей, претерпела сильные философские изменения.

Коренное изменение – это изменение с обязательного описания на декларативный: вместо того, чтобы описывать отдельные шаги установки, декларативная форма определяет состояние, в котором целевая машина должна находиться после различных фаз установки или удаления. Обязательное описание кажется вполне достаточным, пока не произойдет какая-нибудь ошибка. Декларативный метод позволяет справиться с неожиданными ситуациями: отличающимся окружением на целевых машинах, прерыванием установки, совместно используемыми ресурсами. Это имеет первостепенную важность для разработчиков инсталляторов, чтобы удостовериться, что, чтобы ни случилось во время процесса установки, целевую машину нужно вернуть в исходное состояние, без вредных побочных эффектов.

Разработчики широко используемых инструментов установки также подхватили новую технологию и начали предлагать новые версии своих продуктов для создания инсталляторов. Однако, как показывает опыт многих разработчиков, эти инструменты вполне способны создать простые инсталляционные пакеты, но они часто оказываются слишком ограниченными и негибкими, когда речь заходит о более сложных требованиях. Набор инструментов, который мы изучаем — WiX, использует другой подход. Вместо того, чтобы использовать инструмент с графическим интерфейсом, который позволяет разработчикам собирать файлы и другие задачи, в связанные составляющие процесса установки вручную, WiX более похож на язык программирования. WiX отлично интегрируется с обычным процессом создания приложений, он использует текстовый файл (основанный на все более и более популярном формате XML), чтобы описать все элементы инсталляционного процесса. WiX имеет компилятор и компоновщик, который создает инсталляционный пакет, так же, как и обычный компилятор создает ваше приложение из исходных текстов. Таким образом, WiX может стать частью любой автоматизированной сборки приложения очень легко. И не важно, происходит она по классической технологии с Makefiles или используя похожие средства, либо в современных интегрированных средах разработки.

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

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

Как следствие, WiX подходит не для всех разработчиков. Относительная сложность обучения (хотя наша главная цель- помочь преодолеть эту трудность) и неизбежные воздействия внутренних деталей, а иногда и тонкости базовой технологии установщика Windows, позволяют предположить, что менее опытные разработчики и те, кому не нужна неограниченная и непревзойденная производительность WiX — могут использовать более простые, на основе графического интерфейса, средства разработки установки, среди которых есть как коммерческие, так и бесплатные решения.

Подведем итог особенностей и преимуществ набора инструментов:

  • декларативный подход
  • неограниченный доступ к функциям установщика Windows
  • не на основе графического интерфейса
  • полная интеграция в процессы построения приложения
  • возможная интеграция в разработку приложений
  • поддержка команды разработчиков, как “родных”, так и сторонних
  • свободный, с открытым исходным кодом

Вы можете удивиться, что WiX уже достаточно зрелый продукт для установки больших и сложных приложений, с большим количеством файлов, которые будут установлены. Ну, Microsoft сама переходит на WiX со всеми его основными программами. Так, например, установка Microsoft Office 2007 была создана полностью с использованием WiX.


Я хотел бы выразить благодарность, в первую очередь, Rob Mensching за создание инструментов, и Neil Sleightholm, Vadym Stetsyak, Robert Pickering, Marc Borgers, John DeSoi, Markus Karg, Greg Glass, Stefan Krüger, Nobuo Kihara, Phil Wilson, Peter Tewkesbury, Nicholas Muguira, David Adams, Mike Green, Chesong Lee and Christophe Michel за материальный вклад в учебник.