## Building Merge7zInstaller

### Needed binaries/sources:

- 7-zip 3.13 binary distribution. Unzipped source package won't work since we need exact directory structure of installed 7-zip.
- UPX executable file packer from upx.sourceforge.net.
- Sources from 7-zip versions 3.11 - 3.13 and 4.07 - 4.14.

### Before compiling:

1. Install/unzip UPX so that executable is in `$PATH$` (or alter Merge7zInstaller project's post-build setting so it finds UPX).
2. Copy existing 7-zip 3.13 install directory structure to `../../../7z313bin`, relative to location of `Merge7zInstaller.dsp`. For example if `Merge7zInstaller.dsp` resides in `C:\cvshome1\WinMerge\Merge7zInstaller`, then 7-Zip 3.13 has to be installed to `C:\7z313bin`.

### Compiling:

1. Compile `Merge7z*.DLLs` for all 7-zip versions mentioned (ANSI and UNICODE!) This creates DLL files to `/Build/MergeRelease` and `/Build/MergeUnicodeRelease`.
2. Compile Merge7zInstaller project.

### Result:

After successful compile, `Merge7zInstaller.exe` is created in `Merge7zInstaller/Release` or `Merge7zInstaller/Debug`.

### Releasing:

There is separate files category for Merge7zInstaller. The release filename should be `Merge7zInstallerXXXX-YYY-ZZZ.exe`, where `XXXX` denotes the Merge7z DllBuild number as shown in Merge7zInstaller's window title, and `YYY-ZZZ` denote the range of 7-Zip versions supported.

Example: `Merge7zInstaller0010-311-415.exe` is expected to offer support for 7-Zip versions 3.11 through 4.15, based on Merge7z DllBuild 0010.