Source code
Revision control
Copy as Markdown
Other Tools
7-Zip for installers 9.38↩
-------------------------↩
↩
7-Zip is a file archiver for Windows NT/2000/2003/2008/XP/Vista/7/8/10. ↩
↩
7-Zip for installers is part of LZMA SDK.↩
LZMA SDK is written and placed in the public domain by Igor Pavlov.↩
↩
It's allowed to join 7-Zip SFX module with another software.↩
It's allowed to change resources of 7-Zip's SFX modules.↩
↩
↩
HOW to use↩
-----------↩
↩
7zr.exe is reduced version of 7za.exe of 7-Zip.↩
7zr.exe supports only format with these codecs: LZMA, LZMA2, BCJ, BCJ2, ARM, Copy.↩
↩
Example of compressing command for installation packages:↩
↩
7zr a archive.7z files↩
↩
7zSD.sfx is SFX module for installers. 7zSD.sfx uses msvcrt.dll.↩
↩
SFX modules for installers allow to create installation program. ↩
Such module extracts archive to temp folder and then runs specified program and removes ↩
temp files after program finishing. Self-extract archive for installers must be created ↩
as joining 3 files: SFX_Module, Installer_Config, 7z_Archive. ↩
Installer_Config is optional file. You can use the following command to create installer ↩
self-extract archive:↩
↩
copy /b 7zSD.sfx + config.txt + archive.7z archive.exe↩
↩
The smallest installation package size can be achieved, if installation files was ↩
uncompressed before including to 7z archive.↩
↩
-y switch for installer module (at runtime) specifies quiet mode for extracting.↩
↩
Installer Config file format↩
~~~~~~~~~~~~~~~~~~~~~~~~~~~~↩
Config file contains commands for Installer. File begins from string ↩
;!@Install@!UTF-8! and ends with ;!@InstallEnd@!. File must be written ↩
in UTF-8 encoding. File contains string pairs: ↩
↩
ID_String="Value"↩
↩
ID_String Description ↩
↩
Title Title for messages ↩
BeginPrompt Begin Prompt message ↩
Progress Value can be "yes" or "no". Default value is "yes". ↩
RunProgram Command for executing. Default value is "setup.exe". ↩
Substring %%T will be replaced with path to temporary ↩
folder, where files were extracted ↩
Directory Directory prefix for "RunProgram". Default value is ".\\" ↩
ExecuteFile Name of file for executing ↩
ExecuteParameters Parameters for "ExecuteFile" ↩
↩
↩
You can omit any string pair.↩
↩
There are two ways to run program: RunProgram and ExecuteFile. ↩
Use RunProgram, if you want to run some program from .7z archive. ↩
Use ExecuteFile, if you want to open some document from .7z archive or ↩
if you want to execute some command from Windows.↩
↩
If you use RunProgram and if you specify empty directory prefix: Directory="", ↩
the system searches for the executable file in the following sequence:↩
↩
1. The directory from which the application (installer) loaded. ↩
2. The temporary folder, where files were extracted. ↩
3. The Windows system directory. ↩
↩
↩
Config file Examples↩
~~~~~~~~~~~~~~~~~~~~↩
↩
;!@Install@!UTF-8!↩
Title="7-Zip 4.00"↩
BeginPrompt="Do you want to install the 7-Zip 4.00?"↩
RunProgram="setup.exe"↩
;!@InstallEnd@!↩
↩
↩
↩
;!@Install@!UTF-8!↩
Title="7-Zip 4.00"↩
BeginPrompt="Do you want to install the 7-Zip 4.00?"↩
ExecuteFile="7zip.msi"↩
;!@InstallEnd@!↩
↩
↩
↩
;!@Install@!UTF-8!↩
Title="7-Zip 4.01 Update"↩
BeginPrompt="Do you want to install the 7-Zip 4.01 Update?"↩
ExecuteFile="msiexec.exe"↩
ExecuteParameters="/i 7zip.msi REINSTALL=ALL REINSTALLMODE=vomus"↩
;!@InstallEnd@!↩
↩
↩
↩
Small SFX modules for installers↩
--------------------------------↩
↩
7zS2.sfx - small SFX module (GUI version)↩
7zS2con.sfx - small SFX module (Console version)↩
↩
Small SFX modules support this codecs: LZMA, LZMA2, BCJ, BCJ2, ARM, COPY↩
↩
Small SFX module is similar to common SFX module for installers.↩
The difference (what's new in small version):↩
- Smaller size (30 KB vs 100 KB)↩
- C source code instead of Ñ++↩
- No installer Configuration file↩
- No extracting progress window↩
- It decompresses solid 7z blocks (it can be whole 7z archive) to RAM.↩
So user that calls SFX installer must have free RAM of size of largest ↩
solid 7z block (size of 7z archive at simplest case).↩
↩
How to use↩
----------↩
↩
copy /b 7zS2.sfx + archive.7z sfx.exe↩
↩
When you run installer sfx module (sfx.exe)↩
1) It creates "7zNNNNNNNN" temp folder in system temp folder.↩
2) It extracts .7z archive to that folder↩
3) It executes one file from "7zNNNNNNNN" temp folder. ↩
4) It removes "7zNNNNNNNN" temp folder↩
↩
You can send parameters to installer, and installer will transfer them to extracted .exe file.↩
↩
Small SFX uses 3 levels of priorities to select file to execute:↩
↩
1) Files in root folder have higher priority than files in subfolders.↩
2) File extension priorities (from high to low priority order): ↩
bat, cmd, exe, inf, msi, cab (under Windows CE), html, htm↩
3) File name priorities (from high to low priority order): ↩
setup, install, run, start↩
↩
Windows CE (ARM) version of 7zS2.sfx is included to 7-Zip for Windows Mobile package.↩
↩
↩
Examples↩
--------↩
↩
1) To create compressed console 7-Zip:↩
↩
7zr a c.7z 7z.exe 7z.dll -mx↩
copy /b 7zS2con.sfx + c.7z 7zCompr.exe↩
7zCompr.exe b -md22↩
↩
↩
2) To create compressed GUI 7-Zip:↩
↩
7zr a g.7z 7zg.exe 7z.dll -mx↩
copy /b 7zS2.sfx + g.7z 7zgCompr.exe↩
7zgCompr.exe b -md22↩
↩
↩
3) To open some file:↩
↩
7zr a h.7z readme.txt -mx↩
copy /b 7zS2.sfx + h.7z 7zTxt.exe ↩
7zTxt.exe↩