По поводу аддонов (информация для Boa Soft, dimadr и других).
Структура аддонов почти полностью совпадает со структурой основного пакета (рекурсии не предусмотрено, разумеется :)
Конфигурационные файлы (ни один из них не является обязательным, все зависит от конкретного аддона):
- Dosnet - содержимое добавляется в Dosnet.inf в чистом виде;
- Txtsetup - добавляется в Txtsetup.sif в чистом виде;
- Sysoc - добавляется в секцию [Components] файла Sysoc.inf;
- Run - добавляется в секцию [SetupHotfixesToRun] файла Svcpack.inf;
- SpecCase - специальные случаи (например, если нужно удалить что-то из дистрибутива перед тем, как скопировать туда новые файлы); фактически это cmd-файл, только без расширения;
- KillWFP.lst - список файлов, для которых нужно отключить WFP;
- Finish - фактически это cmd-файл (без расширения), выполняется после завершения интеграции всех компонентов;
- DelDrv.lst - файлы в любом виде удаляются из I386 и CAB-файлов, удаляются из Dosnet.inf и Txtsetup.sif, выводятся из списка защиты (патч Sfcfiles.dll);
- DelOC.lst - файлы в любом виде удаляются из I386, удаляются из Dosnet.inf и Txtsetup.sif (а также из Sysoc.inf, если есть), выводятся из списка защиты;
- Addon.nfo - краткая информация об аддоне и дата создания (при сборке все эти файлы сливаются в один ADDONS.TXT, который пишется в корень дистрибутива);
- Required - содержит список аддонов, от которых зависит данный аддон;
- Conflict - список аддонов, с которыми несовместим данный аддон;
- Hive - специфические твики реестра, при сборке из них формируется один Hivepck.inf, который прописывается в секцию [HiveInfs.Fresh] файла Txtsetup.sif и выполняется еще на текстовом этапе установки (см. гайд от Gosh); в файле Hive секции указывать не надо.
Файлы Sysoc и Run
должны заканчиваться пустой строкой.
Может быть еще один файлик для обновления:
Upd (при его обнаружении скрипт удаляет папку Compressed, переименовывает Upd в Upd.cmd и выполняет, причем при выполнении текущей директорией становится папка аддона).
Замечание. Желательно, чтобы у всех файлов, прописанных в Dosnet и Txtsetup, исходные имена были в формате 8.3.