VitRom
Провёл предварительный эксперимент.
В корень диска С поместил архив с базами
base.cab, файл
avz.inf (листинг ниже), файл
install.cmd, со строчкой
rundll32.exe advpack,LaunchINFSection C:\avz.inf,DefaultInstall,4 (для тестовой установки) и предварительно создал структуру папок - C:\Program Files\avz4\base\
Код:
[Version]
Signature="$Windows NT$"
SetupClass=BASE
[Defaultinstall]
RunPostSetupCommands=base
[base]
;Expand -r base.cab -F:* "C:\Progra~1\avz4\base"
;Expand -r base.cab -F:* "%24%\Progra~1\avz4\base"
Expand -r base.cab -F:* "%16422%\avz4\base"
А теперь, внимание, вопрос: Какая из трёх строчек в секции [base] сработала? (на комментарии
; не обращайте внимание)
На вид, все три строчки одинаковые и должны выполнять одно и то же, но срабатывают только две верхних, а третья, та которая нужна, запинается не пойму на чём.
Пока приходит в голову только то, что ADVANCEDINF при выполнении RunPostSetupCommands интерпретирует %16422%, как Program Files (с пробелом) и об это спотыкается expand. Попробовал с использованием не expand, а Extrac32 - те же грабли.
И ещё один момент - при удачной установке (в первых двух вариантах строчек), не удаётся скрыть консольное окно распаковки файлов, флаги в секции RunPostSetupCommands не помогают, а это не есть хорошо.
Так что, чем такой геморой, лучше обновлять базы sfx архивом из svcpack - да, не готично,
зато дёшево, надёжно и практично (с)