Extracting files with same name from installer during Inno Setup InitializeSetup

Viewed 47

This is my file section

Source: "Deployment\x64\SQLite.Interop.dll"; DestDir: "{app}\x64"
Source: "Deployment\x64\System.Data.SQLite.dll"; DestDir: "{app}\x64"
Source: "Deployment\x64\System.Data.SQLite.Linq.dll"; DestDir: "{app}\x64"
Source: "Deployment\x86\SQLite.Interop.dll"; DestDir: "{app}\x86"; DestName
Source: "Deployment\x86\System.Data.SQLite.dll"; DestDir: "{app}\x86"
Source: "Deployment\x86\System.Data.SQLite.Linq.dll"; DestDir: "{app}\x86"

I need to a check list after the first window of Inno Setup appears. For that I have called this function

function RunCheckListApp(): Boolean;
var
  resultCode: Integer;
  source: string;
  destination: string;
begin
  ExtractTemporaryFile('Insync.eConnect.InstallerPreRequisiteCheck.exe');
  ExtractTemporaryFile('APPSeConnect.Communications.dll');
  ExtractTemporaryFile('InSync.eConnect.APPSeCONNECT.dll');
  ExtractTemporaryFile('Microsoft.AspNet.SignalR.Client.dll');
  ExtractTemporaryFile('Newtonsoft.Json.dll');
  ExtractTemporaryFile('System.Data.SQLite.dll');
  ExtractTemporaryFile('System.Data.SQLite.dll');
  ExtractTemporaryFile('InSync.eConnect.NLogModule.dll'); 
  destination:=ExpandConstant('{tmp}\Adapters');
  CreateDir(destination);
  destination:=ExpandConstant('{tmp}\x86');
  CreateDir(destination);
  destination:=ExpandConstant('{tmp}\x64');
  CreateDir(destination);
  ExtractTemporaryFiles('{tmp}\x86\SQLite.Interop.dll');

  destination := ExpandConstant('{tmp}\Adapters\InSync.eConnect.NLogModule.dll')
  source := ExpandConstant('{tmp}\InSync.eConnect.NLogModule.dll');
  FileCopy(source, destination, False);
  DeleteFile(source);

  Exec(ExpandConstant('{tmp}\Insync.eConnect.InstallerPreRequisiteCheck.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, resultCode);
  if resultCode > 0
  then begin
    Result:= true;
  end
  else
  begin
    Result:= false;
  end;
end;

in InitializeSetup function. The app that I am trying to run requires the DLLs in the corresponding folder to function properly.

Deployment\x64\SQLite.Interop.dll to {app}\x64
Deployment\x86\SQLite.Interop.dll to {app}\x86
These are files are copied. Now the app Insync.eConnect.InstallerPreRequisiteCheck.exe requires the same DLLs in the same folders to work. I am trying to extract those DLLs that have the same name to temporary folder and have the same structure.

1 Answers
Related