Пакет установки клиентской части решения

Исходный код SnapIn расположен в подкаталоге NetstatSolutionClientInstaller архива проекта.

Пакет установки клиентской части решения устанавливается на рабочем месте сотрудника, и отвечает за установку и регистрацию компонентов карточек и библиотеки карточек. Клиентская часть устанавливается автоматически при открытии Windows-клиента, если компонент библиотеки карточек не зарегистрирован.

Типовой сценарий установки клиентской части:
  1. Создать подкаталог решения в каталоге Windows-клиента.

    Крайне желательно соблюсти правило размещения компонентов в каталоге Windows-клиента: Каталог-Windows-клиента\Название-решения.

  2. Распаковать компоненты карточки и библиотеки карточек из пакета установки в созданный подкаталог.

  3. Зарегистрировать распакованные компоненты.

    • Компонент карточки не регистрируется.

    • Компонент библиотеки карточек регистрируется командой: regsvr32.exe Путь-к-файлу-компонента (файл должен быть доступен всем пользователям) — данная команда пишет в общую ветку реестра, для чего требуются права администратора. Можно зарегистрировать компонент для текущего пользователя, но для этого потребуется самостоятельно реализовать скрипт для регистрации COM-компонента в ветке реестра HKEY_CURRENT_USER.

  4. Создать в ветке реестра HKEY_CURRENT_USER\SOFTWARE\DocsVision\Platform\5.5\Client\Applications строковый параметр с названием решения. В значении должно быть указано название созданного подкаталога:

    <Component Id="RegistryEntriesComponents" Guid="76563983-1339-469A-9144-2C7C0D6C7F45">
     <RegistryKey Root="HKCU" Key="SOFTWARE\DocsVision\Platform\5.5\Client\Applications">
      <RegistryValue Type="string" Name="NetstatSolution" Value="NetstatSolution" />
     </RegistryKey>
    </Component>

    При запуске Windows-клиента автоматически подключаются библиотеки, расположенные в подкаталогах, указанных в узле Applications реестра.

При создании пакета установки в качестве идентификатора продукта необходимо использовать Код продукта, который был использован в схеме библиотеки карточки на этапе разработки библиотеки карточки:

<Product Id="22CE4047-0BA8-4014-9BBE-7D8C43FDE907"
Чтобы клиентская часть поддерживала обновление, добавляем:
<MajorUpgrade DowngradeErrorMessage="Более новая версия продукта [ProductName] уже установлена." />

<Upgrade Id="$(var.UpgradeCode)">
 <UpgradeVersion Minimum="$(var.ProductVersion)"
  IncludeMinimum="no"
  OnlyDetect="yes"
  Language="1049"
  Property="NEWPRODUCTFOUND" />

 <UpgradeVersion Minimum="$(var.RTMProductVersion)"
  IncludeMinimum="yes"
  Maximum="$(var.ProductVersion)"
  IncludeMaximum="no"
  Language="1049"
  Property="UPGRADEFOUND" />
</Upgrade>

Если вы работаете с исходными кодами проекта, то пакет установки клиентской части собирается четвертым.