p1st0n, если использовать if not ISPackZIP то выходит ошибка я сделал так
#define SevenZip
[Setup]
[Files]
#ifdef SevenZip
Source: Include\7z.exe; DestDir: {tmp}; Flags: dontcopy
#endif
procedure CurStepChanged(CurStep: TSetupStep);
#ifdef SevenZip
ExtractTemporaryFile('7z.exe');
#endif
Процесс создания архивов через Isdone
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), ExpandConstant('a -t7z -m0=Copy -mx0 -ms=off -sccUTF-8 -bb0 "{src}\movies\en.pak" "{src}\DataEn\*.*"'), ExpandConstant('{src}\'), 'Создания архива en.pak',false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), ExpandConstant('a -t7z -m0=Copy -mx0 -ms=off -sccUTF-8 -bb0 "{src}\movies\ru.pak" "{src}\DataRu\*.*"'), ExpandConstant('{src}\'), 'Создания архива ru.pak',false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\xdelta3.exe'), ExpandConstant('-e -0 -S djw -vfs "{src}\movies\en.pak" "{src}\movies\ru.pak" "{src}\movies\ru.diff"'), ExpandConstant('{tmp}'), 'Создания патча...',false) then break;
Процесс восстановления через Isdone
if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{src}\movies\en.pak'), ExpandConstant('{src}\movies\ru.diff'), ExpandConstant('{app}\ru.pak'), false, false) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{app}\ru.pak'), ExpandConstant('{app}'), True, '') then break;
++++++++++++++++++++++++++++++++++++++++++++++++++++++
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), ExpandConstant('a -t7z -m0=Copy -mx0 -ms=off -sccUTF-8 -bb0 "{src}\movies\en.pak" "{src}\DataEn\*.*"'), ExpandConstant('{src}\'), 'Обновление архива',false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), ExpandConstant('a -t7z -m0=Copy -mx0 -ms=off -sccUTF-8 -bb0 "{src}\movies\ru.pak" "{src}\DataRu\*.*"'), ExpandConstant('{src}\'), 'Обновление архива',false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\xdelta3.exe'), ExpandConstant('-e -0 -S djw -vfs "{src}\movies\en.pak" "{src}\movies\ru.pak" "{src}\movies\ru.diff"'), ExpandConstant('{tmp}'), '...',false) then break;
if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{src}\movies\en.pak'), ExpandConstant('{src}\movies\ru.diff'), ExpandConstant('{app}\ru.pak'), false, false) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), '-o"' + ExpandConstant('{app}') + '" x -y -pPASSWORD "' + ExpandConstant('{app}\ru.pak') + '" ', ExpandConstant('{tmp}'), '...',false) then break;
DeleteFile(ExpandConstant('{app}\ru.pak'));