I'm playing around with 7-Zip to create a self-extracting archive (SFX) executable. I followed the documentation, but I wasn't able to get any close. I'm using the 7-Zip 32 bit and the 7-Zip extra 32 bit.
Here is where I'm stuck first to create an SFX file you need to call the following script:
copy /b 7zS.sfx + config.txt + archive.7z archive.exe
This will generate an archive.exe
that will have the config.txt
file to run the appropriate program. Here is how the config.txt
file look like:
;!@Install@!UTF-8!
Title="7-Zip 4.00"
BeginPrompt="Do you want to install the 7-Zip 4.00?"
RunProgram="setup.exe"
;!@InstallEnd@!`
This will generate archive.exe
.
Now further down in the documentation it tells you how to add a file. I need to compress the setup.exe
file so I use the following script.
7z a -sfx a.exe setup.exe
I'm confused about this example. Do I use archive.exe
instead of a.exe
? And if I do that, I get an error saying archive.exe
is not a supported archive type.
If I kept the name a.exe
and setup.exe
to the a and also added the archive.exe
file into it using the previous script, and all it did was extracting the file into the local folder instead of executing it.
Why is this happening?
Best Answer
I have created step by step instructions on how to do this as I also was very confused about how to get this working.
How to make a self extracting archive that runs your setup.exe with 7zip -sfx switch
Step 1 - Setup your installation folder
To make this easy create a folder c:\Install. This is where we will copy all the required files.Step 2 - 7Zip your installers
Step 3 - Get the 7z-Extra sfx extension module
You need to download the 7z-Extra.
Step 4 - Setup your config.txt
I would recommend using NotePad++ to edit this text file as you will need to encode in UTF-8, the following instructions are using notepad++.
Edit this replacing [SOFTWARE v1.0.0.0] with your product name. Notes on the parameters and options for the setup file are here
CheckPoint
You should now have a folder "c:\Install" with the following 3 files:Step 5 - Create the archive
These instructions I found on the web but nowhere did it explain any of the 4 steps above.Run the installer
Double click on MyInstaller.exe and it will prompt with your message. Click OK and the setup.exe will run.P.S. Note on Automation
Now that you have this working in your c:\Install directory I would create an "Install.bat" file and put the copy script in it.Now you can just edit and run the Install.bat every time you need to rebuild a new version of you deployment package.