САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Математико-механический факультет Кафедра Системного программирования Зайцев Андрей Владимирович Разработка инструмента интеграции технологии Windows Installer XML и Visual Studio 2005 Научный руководитель: (должность, степень, звание) Губанов Ю.А. Рецензент: Санкт-Петербург 2008 Введение • Установка может быть очень непростой – установка системных компонент (IIS, SQL Server) на разных версиях Windows – развёртывание базы данных, веб-узла – создание пользователей, назначение прав, запуск служб и т.д. • Требуются профессиональные инструменты для создания хороших дистрибутивов • Внедрение в процесс разработки (нужна интеграция с Visual Studio и SourceSafe; Build) • Печальный опыт использования стандартных проектов VdProj Мотивации • Гибкость (возможность изменить и настроить под свои потребности) • Инструментальная поддержка • Открытость (open source), доступность (free), постоянное развитие • Сокращение времени и затрат на внедрение (“plug-n-play”, “run-n-go”) • Решение: Wix 2.0 + дополнительные инструменты Круг задач 1 Внедрение 2 Разработка 3 Отладка 4 Тестирование и анализ ошибок (на стороне клиента) • Комплексный подход; сквозная поддержка процесса разработки дистрибутивов • Расширение возможностей Wix • Наибольшая отдача за счёт совместного использования технологий • Автоматизация работы программиста • Тонкая настройка проектов установки (и её автоматизация) Цели, задачи, результат • Цели: – Освоить технологии Microsoft Installer и Wix – Разработать инструменты для интеграции Wix и Visual Studio, для отладки и тестирования установочных пакетов. • Задачи: Реализация подпроектов – – – – – – инсталлятор (“WixAngela”) плагин для VS 2005 (“WixAngela”) технология отладки (“AnyDynA”) «Мастер отладки пакета Msi» «Визуализатор запросов Sql» «Визуализатор отладочного протокола» • Результат: дистрибутив WixAngela 1: Внедрение Components Setup • Интегрированный дистрибутив WixAngela – – – – – – MSI SDK Wix 2.0.5325.0 Votive WixEdit Документация по Wix Надстройка/плагин для Visual Studio – RefalDriver – Прочие инструменты • Автоматическая установка (вызов из командной строки) Please select components to install: Visual Studio Addon Refal Driver < Back Next > 2: Разработка Надстройка для Visual Studio: 1. • • • Централизованный вызов функций из меню “Installer” Удобный графический интерфейс Автоматическая генерация кода и тонкая настройка проектов • • • Настройка проекта Binary Custom Actions Настройка проекта SFX-дистрибутива и Custom Bootstrapper Возможность использовать RefalDriver Картинка: Visual Studio с раскрытым меню Installer Картинка: BinCA C++ Proj SFX Package Proj Картинка: Распаковка SFX, Окно custom bootstrapper 2: Разработка Библиотека AnyDynA для ведения отладочного протокола 2. • • • Специальные макросы (мини-язык) BinCA, FUNCTION, MsgInfo, Warning, Error Гибкая настройка параметров вывода сообщений Средство трассировки и подключения отладчика VS2005 BinCA( SampleCA, TRACER_LEVEL_WARNINGS, hInstall, lResult) { Картинка: MsgInfo( 1(TEXT("Message Text")), Картинка: 1(TEXT("Message Caption"))); галочки напротив код AnyDynA имён CA с lResult = 1602; выбором MsgBox return 0; } Картинка: Отладочные сообщения 2: Разработка 3. Программный интерфейс для внешних клиентов • • • Интерфейсы MsiFn (около 120 функций!!), WixCaFn, CustomFn (применён иск.интеллект) Возможность программирования «на лету» Основа для создания вспомогательных средств отладки (с богатым графическим интерфейсом) Картинка: COM, Interfaces Картинка: окно (+логотип) Visual Basic 6 Картинка: Msi Sql Inspector Отладка, Тестирование и анализ ошибок • AnyDynA: – Ведение отладочного протокола – Гибкая настройка класса Logger – Выполнение «по шагам», прерывание исполнения, остановка и вызов отладчика • Мастер отладки пакетов Msi (Msi Debug Wizard) – Удобный графический интерфейс (для настройки параметров ведения логов) – Регистрация COMпонентов (для интерфейсов обратной связи) на «чистых» машинах – Реализация средства просмотра Sql-запросов Msi (Msi Sql Inspector) • • Msi Sql Inspector Приложение Msi Log Viewer Картинка: Msi Debug Wizard Картинка: Msi Debug Wizard Картинка: Msi Debug Wizard Картинка: Msi Debug Wizard Заключение RefalDriver Light v1.0.0.13 WixAngela Setup AnyDynA For Binary CA WixAngela VS Plugin Msi Callback Interfaces Программная документация Doxygen Msi Debug Wizard Msi Sql Inspector Msi Log Viewer