Аддоны этого типа устанавливаются с помощью INF скриптов. Настоятельно рекомендуется сначала прочитать Руководство по работе с INF-файлами. По сути собирается собственный установщик (в отличие от аддонов SVCPACK, где зачастую используются готовые установщики с ключами тихой установки).
Как создать собственный INF для установки нужной программы?
Практически любое приложение устанавливается в три этапа:
С помощью сторонних утилит (RegShot, Ashampoo Uninstaller) собираем эту информацию об установке программы для которой будет создаваться аддон.
Затем упаковываем все необходимые файлы в СAB-архив (необязательно, но в целях экономии места желательно), а установка этих файлов осуществляется с помощью INF-скрипта, который пишется самостоятельно - на основе полученной информации о папках назначения, копируемых в них файлов, добавления ключей реестра, регистрации библиотек dll.
Для построения аддона данного типа необходимо использовать следующие конфигурационные файлы: Sysoc, Txtsetup, Dosnet. Строки из этих конфигурационных файлов добавляются в тело их "тезок" в дистрибутиве.
Файл Txtsetup.sif фактически является списком копируемых файлов для текстового этапа установки, с его помощью копируются файлы и кусты реестра с диска в папку установки Windows. С помощью Sysoc.inf менеджер установки строит список файлов для установки дополнительных компонентов. Затем этот список сверяется с файлом Unattend.txt (Winnt.sif), если он есть. По результатам сверки образуется конечный список устанавливаемых компонентов. Файл Dosnet.inf содержит остальные данные для программы установки на текстовом этапе, в том числе папку установки Windows.
Фактически аддон типа SYSOC работает следующим образом. При компиляции скриптом Update Pack секции из Sysoc, Txtsetup, Dosnet, находящихся в корневой папке аддона переносятся в дистрибутивные аналоги. Файлы из папки аддона Files копируются в папку дистрибутива I386.
Затем на текстовом этапе файлы аддона, прописанные в списке Txtsetup.sif, копируются из дистрибутива в папку назначения для последующей установки вместе с дополнительными компонентами из Sysoc.inf. Файл Dosnet.inf используется только при установке Windows с жёсткого диска.
Пример аддона, использующего SYSOC (addon FoxIT Reader)
FOXITR2 (папка аддона)
+Files(папка файлов аддона)
-+Compresed
-+ForceCopy
--Foxitr2.cab (cab-архив содержит 3 файла собственно программы)
*---fxdecod1.dll
*---FoxitReader.exe
*---lang_ru_ru.xml
--Foxitr2.in_(INF-файл запакованный в CAB-архив)
-Addon.nfo
-Dosnet
-Txtsetup >(конфигурационные файлы)
-Sysoc
Содержимое Foxitr2.inf (частично)
.......
[SourceDisksFiles]
;Generated with gen_sdf_section script
FoxitReader.exe = 1
fxdecod1.dll = 1
lang_ru_ru.xml = 1 -Определение копируемых файлов
[DestinationDirs] и папок назначения;
DefaultDestDir = 11
FOXITR.Install.Copy = 16422, "Foxit Reader"
.......
[FOXITR.Install.Reg]
HKCR,".pdf",,%REG_SZ%,"FoxitReader.Document"
HKCR,".pdf","Content Type",%REG_SZ%,"application/pdf" - Добавление параметров в реестр;
.......
Файл Sysoc.inf после компиляции аддона.
[Components]
....
DrWeb=ocgen.dll,OcEntry,DrWeb.inf,hide,7
FOXITR2=ocgen.dll,OcEntry,FOXITR2.INF,,7
klite=ocgen.dll,OcEntry,klite.inf,HIDE,7
Важно! При создании аддонов sysoc с копированием файлов из CAB-файла, следите, чтобы имена файлов в CAB-файле не совпадали с именами файлов в i386 (сжатыми и несжатыми), в противном случае вместо файла из cab-файле будет скопирован файл из i386.
Важно! Чтобы интегрировать аддон, но при этом НЕ уставить его, чтобы он был доступен впоследствии для установки через менеджер компонентов Windows, необходимо в установочных INF-файлах каждого аддона закомментировать параметр Modes точкой с запятой.
;Modes=0,1,2,3
Важно! Не забывайте про секцию [DefaultInstall] в вашем INF-файле. Она необходима для того, чтобы INF-файл устанавливался в будущем из контекстного меню (а не через rundll32), если предполагается использовать аддон на установленной системе. Пример: аддон Opera использует для автоустановки секцию [opera], но наряду с этим присутсвтует секция [DefaultInstal].
Важно! Файлы Sysoc, Txtsetup и Dosnet должны заканчиваться пустой строкой.
Важно! Про файлы Txtsetup.sif и Sysoc.inf подробнее читайте в Приложениях 3,4.
К содержанию