Home / nsisbi3.04.1
Name Modified Size InfoDownloads / Week
Parent folder
readme-7069-1.txt 2019-06-14 3.4 kB
changelog.txt 2019-06-13 4.0 kB
nsis-binary-7069-1.zip 2019-06-13 3.1 MB
nsis-code-7069-1-NSIS-trunk.zip 2019-06-13 2.3 MB
Totals: 4 Items   5.4 MB 0
NSISBI aims to remove the current 2GB limit found in NSIS. This version adds support for using a separate file for storing the install data, therefore allowing installer sizes up to a theoretical max size of 8EB. Single files are still limited to 2GB after compression.

The command to use an external file is: OutFileMode auto | aio | data | stub. The 'aio' setting is the same as classic nsis (all-in-one installers). The 'data' setting forces creation of external files regardless of size (except zero data installers). The 'stub' setting is a specialized version of the 'data' mode, which turns the exehead into a downloadable stub and can use plugins to download the main install file. The 'auto' setting is the default, so it creates all-in-one installers up to the 4GB limit, past this limit it switches to an external file for the data. The only down side is that solid compression is not supported, due to its design it just isn't feasible to add support.

An undocumented 'Target' command also exists that allows the target architecture to be selected. It is: Target cpu-charset. Valid values are: x86-ansi, x86-unicode, amd64-unicode.

See the changelog for updates.

Important: if you get a compiler error with LZ4 about 'intrin.h' not found, just wrap it in a version check, like this:

#  if !(_MSC_FULL_VER <= 140040310)
#    include <intrin.h>
#  endif

VS2005 and the PSDK Server 2003 R2 have the same _MSC_VER, and VS2005 compiles fine, so I have to use _MSC_FULL_VER for the check.
I will be including this fix in a future version of nsisbi.

SetExOutFile has been renamed to 'OutFileMode auto|aio|data|stub'

OutFileMode auto|aio|data|stub
Specifies the output file mode that makensis writes.
'aio' is the same as classic nsis, which creates single file installers up to the exe limit of 4GB.
'data' writes the install data to a separate file, which allows installers over 4GB to be created (both the .exe and the .nsisbin must exist together for the installer to run).
'stub' is a specialized version of the 'data' mode, designed for web downloads. The .exe can be run on its own and plugins can be used to download the main .nsisbin file. If the .nsisbin file is not found use VerifyExternalFile to check and use the .nsisbin file. Plugins called directly (ie plugin::function) are automatically added to the exehead and not the main install block.
'auto' is the default, and it chooses between 'aio' and 'data' modes based on the amount of data added (the 'aio' limit is 4GB).

A few new commands have been added to compliment OutFileMode stub:

StubFile
When OutFileMode is set to 'stub', files are added to the exehead stub instead of the main install block. Otherwise is identical to File. Useful for files required for the installer ie bitmaps.

ReserveStubFile
Reserves a file in the data block for later use. When OutFileMode is set to 'stub', files are added to the exehead stub instead of the main install block. Otherwise is identical to ReserveFile.
See File for more information about the parameters.

VerifyExternalFile [path_to_data_file]
When OutFileMode is set to 'stub', this checks and uses the .nsisbin file, if it can't be found when the installer first runs. If no path is specified, the default path is used (the installer path and name with .nsisbin instead of .exe). Sets the error flag if the check fails.
Source: readme-7069-1.txt, updated 2019-06-14