Все заработало, огромное спасибо !EvilAlex,
Код:[External compressor:srep] unpackcmd = srep -d -s $$arcpackedfile$$.tmp $$arcdatafile$$.tmp
Может быть для начала извлечь библиотеку в темп через ExtractTemporaryFile('ISDone.dll');? Если вызовы происходят по типуВсе прив, может кто объяснить чего это за беда и где копать?
function ISArcExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile:boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: boolean ):boolean; external 'ISArcExtract@{tmp}\ISDone.dll stdcall delayload';
Он его перемещает рядом с сетапом... Я бы хотел сделать чтобы при создании он создавал бы его в другой папке. а не в той-же самой где и сетап...EvilAlex, добавь перемещение файла в нужную папку после isdone.
Переделывал исдон 0.5 в 0.6, вроде все прописал, в инсталляторе библиотека есть, но блин не хочет зараза извлекаться и все тут.Может быть для начала извлечь библиотеку в темп через ExtractTemporaryFile('ISDone.dll');? Если вызовы происходят по типу
Ну либо ее просто не запаковало в инсталлятор.Код:function ISArcExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile:boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: boolean ):boolean; external 'ISArcExtract@{tmp}\ISDone.dll stdcall delayload';
Ну либо вызываются функции, которых просто уже/еще нет в библиотеке.
Source: Include\Pkzip.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data-1.bin'), ExpandConstant('{app}'), '', false, '123456', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISExec ( 1, 0, 0, ExpandConstant('{app}\Pkzip.exe'), ExpandConstant('-add -store -dir=relative -NoZipExtension "{app}\Modules\Ahkuilon.rvm" "{app}\Temp\Modules\Ahkuilon\*.*"'), ExpandConstant('{app}'), 'Ahkuilon.rvm',false) then break;
procedure IsDoneUnpack(CurStep: TSetupStep);
var
Comps1,Comps2,Comps3:cardinal;
TotalNeedSize: Cardinal;
Str: string;
// FindHandle1,ColFiles1,CurIndex1,tmp:integer;
// ExecError:boolean;
// InFilePath,OutFilePath,OutFileName:PAnsiChar;
begin
if CurStep = ssPostInstall then begin //Если необходимо, можно поменять на ssInstall
...
т.е. мне достаточно будет изменить ssInstall на ssPostInstall? Я правильно Вас понял?Код:if CurStep = ssPostInstall then begin //Если необходимо, можно поменять на ssInstall ...
Source: Files\Fonts\Revenant.ttf; DestDir: {fonts}; FontInstall: Revenant; Flags: onlyifdoesntexist uninsneveruninstall
Source: Files\Fonts\RevenantBS.ttf; DestDir: {fonts}; FontInstall: RevenantBS; Flags: onlyifdoesntexist uninsneveruninstall
Source: Files\Fonts\RevenantDlg.ttf; DestDir: {fonts}; FontInstall: RevenantDlg; Flags: onlyifdoesntexist uninsneveruninstall
Source: Include\Pkzip.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall
кинуть в лс или сюды если все равно. я изменю и будет норм. а то я ж не знаю как там. или до завтра - будет пример на основе исдона. в любом случае до завтра. мне влом. я искупалсяКак это можно предотвратить?
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Pkzip.bin'), ExpandConstant('{app}'), '', false, '123456', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data-1.bin'), ExpandConstant('{app}'), '', false, '123456', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISExec ( 1, 0, 0, ExpandConstant('{app}\Pkzip.exe'), ExpandConstant('-add -store -dir=relative -NoZipExtension "{app}\Modules\Ahkuilon.rvm" "{app}\Temp\Modules\Ahkuilon\*.*"'), ExpandConstant('{app}'), 'Ahkuilon.rvm',false) then break;
лучше с {tmp} копировать. проще. я уже там отправил товарищу. по мне так лучше после распаковка идет, чем до.запаковать Pkzip.exe в архив .arc/bin
if CurStep = ssInstall then begin
ExtractTemporaryFile('Pkzip.exe');
FileCopy(ExpandConstant("{tmp}\Pkzip.exe"), ExpandConstant("{app}\Pkzip.exe"));
end;
[Files]
Source: Include\Pkzip.exe; DestDir: {tmp}; Flags: ignoreversion
//...
if CurStep = ssPostInstall then begin
ExtractTemporaryFile('Pkzip.exe');
FileCopy(ExpandConstant('{tmp}\Pkzip.exe'), ExpandConstant('{app}\Pkzip.exe'),False);
end;
if not ISExec ( 1, 0, 0, ExpandConstant('{sys}\cmd.exe'), ExpandConstant('/c rmdir /s /q "{app}\Temp"'), ExpandConstant('{sys}'), 'Удаление временной папки...',false) then break;