FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   ASIS: Advanced Simple Installer Script (https://fileforums.com/showthread.php?t=99481)

KaktoR 18-04-2021 04:13

Setup.dll must be in the same folder where Setup.exe is

Cesar82 18-04-2021 05:17

Quote:

Originally Posted by L33THAK0R (Post 491397)
I understand all this but what I mean is where physically should "setup.dll" be present when making the .exe with ASIS, or is it not included inside of the .exe generated by ASIS?

I had already answered before...
Setup.dll must be next to Setup.exe (Same folder) when starting the decompression using ASIS.

Complementing the answer, for those who did not understand:
Setup.dll is not needed before build Setup.exe.
ASIS will check if there is a file with the same name as the executable, but with a .dll extension and will extract it using UnArc.dll/IsDone.dll.
Only these 2 libraries are included in ASIS and are required prior to build Setup.exe.
Nothing else is needed inside Setup.exe during the build of Setup.exe.

L33THAK0R 18-04-2021 16:39

Quote:

Originally Posted by Cesar82 (Post 491400)
I had already answered before...
Setup.dll must be next to Setup.exe (Same folder) when starting the decompression using ASIS.

Complementing the answer, for those who did not understand:
Setup.dll is not needed before build Setup.exe.
ASIS will check if there is a file with the same name as the executable, but with a .dll extension and will extract it using UnArc.dll/IsDone.dll.
Only these 2 libraries are included in ASIS and are required prior to build Setup.exe.
Nothing else is needed inside Setup.exe during the build of Setup.exe.

Ah alright, sorry was just hoping that'd it'd be possible to put the needed resources inside of the ASIS generated .exe, as was possible with v7.2.0.0, guess I won't be using v7.2.2.0+ lol

Cesar82 19-04-2021 04:01

Quote:

Originally Posted by L33THAK0R (Post 491410)
Ah alright, sorry was just hoping that'd it'd be possible to put the needed resources inside of the ASIS generated .exe, as was possible with v7.2.0.0, guess I won't be using v7.2.2.0+ lol

If version 7.2.0.0 is working well for you, great ...
Older versions may contain a bug that may have been fixed in the newer version.

If you want you can include the Setup.dll file internally from Setup.exe just by adding 4 lines to the script (red lines below). But you must first create Setup.dll and include it with scritp.iss before compiling Setup.exe. To do this, change it in the script:
In the [Files] section add.
Code:

[Files]
....
///////////////////////////////////////////////////////////////////////////////////////////
//////////////// FreeArc/ISDone Files /////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

Source: "{#SetupSetting("OutputBaseFilename")}.dll"; DestDir: "COMPRESSORS"; Flags: dontcopy nocompression

Source: "Resources\Includes\UnArc.dll"; DestDir: "COMPRESSORS"; Flags: dontcopy
Source: "Resources\Includes\ISDone.dll"; DestDir: "COMPRESSORS"; Flags: dontcopy

In the [Code] section, locate for "procedure UltraARC_Process;" and add the line:
Code:

procedure UltraARC_Process;
var
  Data: Array of TData;
  I, MsgResult: Integer;
  SourceDir, DataFile: String;
  #if UseComponents == "1"
  ComponentFile: String;
  #endif
  SysInfo: TSystemInfo;
  Threads: Integer;
begin
  ExtractTemporaryFile('{#SetupSetting("OutputBaseFilename")}.dll');
  if CompareText('{#SetupSetting("OutputBaseFilename")}.dll', ExtractFileName(ChangeFileExt(ExpandConstant('{srcexe}'), '.dll'))) <> 0 then
    FileCopy(ExpandConstant('{tmp}\{#SetupSetting("OutputBaseFilename")}.dll'), ExpandConstant('{tmp}\') + ExtractFileName(ChangeFileExt(ExpandConstant('{srcexe}'), '.dll')), False);

  //BEGIN - DISK SPAN GUI CHANGES
  I := 1;
  ISDoneError := False;
  ExtractTemporaryFile('UnArc.dll');


L33THAK0R 19-04-2021 06:23

Quote:

Originally Posted by Cesar82 (Post 491420)
If version 7.2.0.0 is working well for you, great ...
Older versions may contain a bug that may have been fixed in the newer version.

If you want you can include the Setup.dll file internally from Setup.exe just by adding 4 lines to the script (red lines below). But you must first create Setup.dll and include it with scritp.iss before compiling Setup.exe. To do this, change it in the script:
In the [Files] section add.
Code:

[Files]
....
///////////////////////////////////////////////////////////////////////////////////////////
//////////////// FreeArc/ISDone Files /////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

Source: "{#SetupSetting("OutputBaseFilename")}.dll"; DestDir: "COMPRESSORS"; Flags: dontcopy nocompression

Source: "Resources\Includes\UnArc.dll"; DestDir: "COMPRESSORS"; Flags: dontcopy
Source: "Resources\Includes\ISDone.dll"; DestDir: "COMPRESSORS"; Flags: dontcopy

In the [Code] section, locate for "procedure UltraARC_Process;" and add the line:
Code:

procedure UltraARC_Process;
var
  Data: Array of TData;
  I, MsgResult: Integer;
  SourceDir, DataFile: String;
  #if UseComponents == "1"
  ComponentFile: String;
  #endif
  SysInfo: TSystemInfo;
  Threads: Integer;
begin
  ExtractTemporaryFile('{#SetupSetting("OutputBaseFilename")}.dll');
  if CompareText('{#SetupSetting("OutputBaseFilename")}.dll', ExtractFileName(ChangeFileExt(ExpandConstant('{srcexe}'), '.dll'))) <> 0 then
    FileCopy(ExpandConstant('{tmp}\{#SetupSetting("OutputBaseFilename")}.dll'), ExpandConstant('{tmp}\') + ExtractFileName(ChangeFileExt(ExpandConstant('{srcexe}'), '.dll')), False);

  //BEGIN - DISK SPAN GUI CHANGES
  I := 1;
  ISDoneError := False;
  ExtractTemporaryFile('UnArc.dll');



Thank you for being so patient with me man, really appreciate this, I wish I was more competent with python or whatever the script is written in, so that I could save you the trouble of doing this, thanks once again man, you're a hero!

Cesar82 19-04-2021 08:54

Quote:

Originally Posted by L33THAK0R (Post 491422)
Thank you for being so patient with me man, really appreciate this, I wish I was more competent with python or whatever the script is written in, so that I could save you the trouble of doing this, thanks once again man, you're a hero!

The programming is paschal with preprogrammed functions as in delphi (based on delphi).
I had to change the location of the Setup.dll file (After these changes above it will be in the temporary folder).
It is also necessary to change just below by replacing in 3 lines.
Code:

ChangeFileExt(ExpandConstant('{srcexe}'), '.dll')
Replace with:
Code:

ExpandConstant('{tmp}\') + ExtractFileName(ChangeFileExt(ExpandConstant('{srcexe}'), '.dll'))
After the changes it will look like this;
Code:

  //....
  if FileExists(ExpandConstant('{tmp}\') + ExtractFileName(ChangeFileExt(ExpandConstant('{srcexe}'), '.dll'))) then
  begin
    if ISDoneInit(ExpandConstant('{tmp}\Records.inf'), $F777, 0,0,0, MainForm.Handle, 0, @UnpackDLLCallback) then
    begin
      if not ISArcExtract(0, 0, ExpandConstant('{tmp}\') + ExtractFileName(ChangeFileExt(ExpandConstant('{srcexe}'), '.dll')), ExpandConstant('{tmp}'), '', False, '', ExpandConstant('{tmp}\Arc.ini'), ExpandConstant('{tmp}'), False) then
      begin
        ISDoneError := True;
        SysErrorMessage(DLLGetLastError);
      end;
      ISDoneStop;
      UnloadDLL(ExpandConstant('{tmp}\ISDone.dll'));
    end;
    //...

Good luck!

L33THAK0R 19-04-2021 21:47

Quote:

Originally Posted by Cesar82 (Post 491424)
The programming is paschal with preprogrammed functions as in delphi (based on delphi).
I had to change the location of the Setup.dll file (After these changes above it will be in the temporary folder).
It is also necessary to change just below by replacing in 3 lines.
Code:

ChangeFileExt(ExpandConstant('{srcexe}'), '.dll')
Replace with:
Code:

ExpandConstant('{tmp}\') + ExtractFileName(ChangeFileExt(ExpandConstant('{srcexe}'), '.dll'))
After the changes it will look like this;
Code:

  //....
  if FileExists(ExpandConstant('{tmp}\') + ExtractFileName(ChangeFileExt(ExpandConstant('{srcexe}'), '.dll'))) then
  begin
    if ISDoneInit(ExpandConstant('{tmp}\Records.inf'), $F777, 0,0,0, MainForm.Handle, 0, @UnpackDLLCallback) then
    begin
      if not ISArcExtract(0, 0, ExpandConstant('{tmp}\') + ExtractFileName(ChangeFileExt(ExpandConstant('{srcexe}'), '.dll')), ExpandConstant('{tmp}'), '', False, '', ExpandConstant('{tmp}\Arc.ini'), ExpandConstant('{tmp}'), False) then
      begin
        ISDoneError := True;
        SysErrorMessage(DLLGetLastError);
      end;
      ISDoneStop;
      UnloadDLL(ExpandConstant('{tmp}\ISDone.dll'));
    end;
    //...

Good luck!


Thanks man, really appreciate everything you've done!

pratikpatel8982 27-04-2021 09:11

Download link to ASIS
 
Can someone plz give link to latest ASIS version? I did not find it in the OP.

KaktoR 27-04-2021 09:21

https://fileforums.com/showpost.php?...&postcount=944

L33THAK0R 27-04-2021 21:16

Is it possible for the CRC checking utility in ASIS compact mode to list "bad", "ok" and files not present, or would this require a code rewrite?

pratikpatel8982 28-04-2021 21:33

Will it work with diskspan_gui 1.0.0.4 if I delete the contents inside diskspan_gui folder and extract the contents of compressor folder inside it.
EDIT: NVM, I'll test myself.

KaktoR 29-04-2021 07:16

Quote:

Originally Posted by pratikpatel8982 (Post 491627)
Will it work with diskspan_gui 1.0.0.4 if I delete the contents inside diskspan_gui folder and extract the contents of compressor folder inside it.
EDIT: NVM, I'll test myself.

Yes it works.

KaktoR 29-04-2021 07:16

Quote:

Originally Posted by L33THAK0R (Post 491605)
Is it possible for the CRC checking utility in ASIS compact mode to list "bad", "ok" and files not present, or would this require a code rewrite?

Code changes are needed.

L33THAK0R 29-04-2021 08:50

Quote:

Originally Posted by KaktoR (Post 491637)
Code changes are needed.

Drat! Had a feeling that would be the case.

alucard1973 30-04-2021 06:27

Hello,
I have a problem, here, as shown in the image, when I select the file that I want to install, it does not give me the number of MB or GB it uses for French Langage, there are 4 games in total but just put 1 with different language to test.
Likewise, with CIU there is the Task, but not on ASIS 7.2.2a, is it possible to put it manually?
I also want to know what is Component1.Level=0
Thank you

https://nsm09.casimages.com/img/2021...5917395259.png


All times are GMT -7. The time now is 13:10.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com