Инсталляция клиентской части решения

Для корректной работы разработанного решения на клиентских компьютерах там должны быть установлены и зарегистрированы компоненты карточек, библиотеки карточек, а также всех вспомогательных библиотек, использованных при разработке.

Платформа Docsvision предусматривает их автоматическую установку при первом обращении к серверу Docsvision при помощи специализированной программы инсталляции в формате Windows Installer (MSI), которую также должен создать разработчик решения.

Создать инсталляционный MSI-файл можно при помощи специализированных приложений, предназначенных для создания программ инсталляции. Например, это может InstallShield (Windows Installer Edition), либо можно воспользоваться средствами подготовки инсталляций в составе Microsoft Visual Studio (2003 или 2005). В процессе создания MSI-файла в него нужно включить компонент библиотеки и компонент(ы) карточек. Для всех COM-компонентов следует указать на необходимость их регистрации (extract-at-build или self-register).

В процессе создания инсталляционного пакета необходимо указать следующие его параметры:
  • Название, описание, производитель.

  • Версия, желательно, чтобы она совпадала с версией библиотеки карточек.

  • Код продукта (ProductCode) — уникальный код инсталляционного пакета (будет сгененрирован автоматически).

  • Базовый путь для установки файлов.

Путь для установки файлов обычно зависит от выбранной области установки. При установке "Только для текущего пользователя" это обычно путь: $\КАТАЛОГ_ПРОФИЛЯ_ПОЛЬЗОВАТЕЛЯ\Local Settings\DocsVision\РЕШЕНИЕ\ВЕРСИЯ\Client\, а при установке в область "Для всех пользователей" — путь: $\Program Files\DocsVision\РЕШЕНИЕ}\ВЕРСИЯ\Client\.

Особенность работы Windows Installer такова, что даже при установке в режиме "только для текущего пользователя", ключи реестра для библиотек типов (TypeLib) будут создаваться в общей ветке реестра (HKEY_LOCAL_MACHINE).

В случае отсутствия у пользователя административных привилегий на компьютере, это может привести к ошибкам в процессе установки и некорректному функционированию решения. Для избежания подобных ошибок желательно отказаться от регистрации библиотек типов (если они не нужны) — для этого нужно проследить, чтобы в таблице TypeLib инсталляционного пакета не было никаких записей.

После создания инсталляционного пакета его необходимо сопоставить с библиотекой карточек. Это делается при помощи утилиты "CardManager" — в описании библиотеки на вкладке Installers:

Вкладка "Installers"
Рисунок 1. Вкладка "Installers"

Поле PackageID (значение генерируется автоматически) содержит уникальный идентификатор данной программы инсталляции (у библиотеки может быть несколько инсталляционных программ). В поле ProductCode необходимо скопировать идентификатор программы установки, сгенерированный при её создании, а в поле Installer — имя файла с относительным путем, по которому на сервере будет расположен инсталляционный пакет.

Готовый клиентский инсталляционный пакет необходимо расположить на сервере (вручную или при помощи программы инсталляции серверной части решения), где он будет доступен для скачивания и установки всем клиентам (см. выше).

При обновлении версии решения на сервере клиентские компоненты будут обновлены на новую версию автоматически после первого обращения клиента к обновленному серверу.

Для корректного обновления решения на клиентских машинах при изменении версии на сервере в инсталляционном пакете новой версии решения необходимо сгенерировать новый ProductCode, но оставить прежнее значение UpgradeCode.