You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
5.3 KiB
166 lines
5.3 KiB
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
|