Инсталляторы без MSI широко применялись для установки приложений на компьютеры, работающие под управлением Windows 95/98, пока не появилась технология MSI. В настоящее время компания Microsoft рекомендует разработчикам программного обеспечения переходить на MSI, однако «старые» инсталляторы встречаются еще достаточно часто.
Схема работы такого инсталлятора в общем случае выгладит следующим образом.
На первом шаге пользователь «вручную» или с помощью средства Установка и удаление программ запускает на выполнение Setup-файл.
Далее программа-инсталлятор считывает необходимые для установки сведения из специального файла с расширением JNF, входящего в дистрибутив, и сравнивает их с параметрами системы. В случае необходимости отдельные параметры установки запрашиваются у пользователя. Таковыми могут быть, например:
- папка, куда следует установить приложение;
- состав устанавливаемых компонентов приложения;
- язык пользовательского интерфейса и некоторые другие.
Результаты процесса установки (текущие параметры установленного приложения) записываются также в файл специального типа с расширением .INI. Этот файл создается на жестком диске, обычно в папке, куда устанавливается принижение.
Содержимое INI-файла используется, в частности, когда пользователь выполняет обновление программы или доустанавливает новые компоненты. После удаления приложения файл .INI остается на прежнем месте. По мнению разработчиков, это должно ускорить повторную установку приложения (если таковая будет иметь место) и избавить пользователя от повторной настройки параметров работы приложений.
Важной особенностью (точнее, недостатком) «старых» инсталляторов по сравнению с MSI-инсталляторами является именно недостаточная гибкость при изменении состава установленных компонентов приложения. Чтобы добавить новый компонент, пользователь должен завершить работу с приложением и запустить (опять-таки вручную или с помощью средства Установка и удаление программ) процедуру инсталляций. После чего иногда приходится выполнять перезагрузку системы. И лишь после этого можно вновь вернуться к работе с приложением. Понятно, что такой порядок не очень удобен. Эта проблема решена в MSI-инсталляторах.
Теперь более подробно остановимся на упомянутых выше файлах INF и INI.
Файл типа. INF — это файл сведений об установке (в трактовке разработчиков русскоязычного интерфейса Windows).
«Изнутри» же INF-файл представляет собой текстовый файл, который содержит параметры и условия установки программного обеспечения (не только приложений, но также драйверов устройств или компонентов ОС).
В некоторых случаях INF-файл может содержать и команды, образующие сценарий процесса установки. Такой INF-файл вполне способен заменить программу-инсталлятор. Именно поэтому, щелкнув правой кнопкой мыши значок INF-файла, вы можете увидеть в его контекстном меню команду Установить. Обработка таких iNF-файлов возлагается на системные файлы RunDII32.exe и SetupAPI.dll, которые можно условно назвать «штатным инсталлятором» для Windows98.
INF-файл состоит из последовательности разделов, одни из которых является обязательными, другие — нет.
Файл типа INI — это файл параметров конфигурации (в трактовке разработчиков русскоязычного интерфейса Windows). Другое название — файл инициализации (INI — это сокращение слова Initialization). Название обусловлено предназначением INI-файлов: они обеспечивают запуск программ с определенными начальными параметрами.
Различают два вида INI-файлов:
- файлы инициализации системы — используются в Windows 96/98 (в частности, к таким файлам относятся Win.ini и System.ini);
- файлы инициализации приложений — содержат информацию о параметрах конкретного приложения (например, размеры и расположение окна приложения).
В последних версиях Windows (98 и выше) функции INI-файлов выполняют соответствующие записи системного реестра. Тем не менее, некоторые разработчики продолжают использовать эти файлы для хранения параметров приложений.
С точки зрения реализации INI-файл — это текстовый файл, состоящий из последовательности разделов. Его можно открыть и отредактировать в любом текстовом редакторе, например в Блокноте.
Вернемся к работе «не-MSI» инсталляторов. Еще один существенный их недостаток — слабый контроль за параметрами ресурсов (программных компонентов), которые включаются в состав системы при инсталляции приложения.
Собственно говоря, такой контроль выполняет специальная системная утилита — Диспетчер конфликтов версий. Если для файла устанавливаемого компонента в системе уже существует «тёзка» (файл с тем же именем), производится сравнение номера версии, языка и некоторых других параметров, характеризующих версию компонента. В случае несовпадения этих атрибутов у ранее установленного и нового файла на экран выводится соответствующее предупреждение. Если пользователь соглашается заменить имеющуюся версию компонента другой, входящей в состав дистрибутива, текущая версия сохраняется в специальной папке %SystemRoot%\SysBckup.
Впоследствии вы сможете вернуться к первоначальной версии компонента. Для этого следует воспользоваться программой Сведения о системе. Запустив программу, выберите в меню Сервис команду Диспетчер конфликтов версий.
Затем в окне утилиты выберите компонент, подлежащий замене, и щелкните кнопку Восстановить выбранные файлы.