There is download package called "QuickStart Pack" available in Inno Setup downloads. It contains all needed components in one installer.
Installer/InnoSetup
folder: WinMerge.iss
WinMergeU.exe
. So make
sure you have version resource correctly set.Tools/Scripts/SetVersions.py
which sets
version numbers to all components. The script reads version numbers from
/versions.ini
file. See more info about the script from
Tools/Scripts/SetVersions.txt
/Plugins/Dlls
) or as filemask (like
*.flt
) so take extra care to make sure all needed files
are present in locations shown below.
First make sure you have all needed files compiled and available:
WinMergeU.exe
MergeLang.dll
/Translations/WinMerge/*.po
libexpat.dll
and pcre.dll
WinMerge.chm
ShellExtensionU.dll
and ShellExtensionX64.dll
/Docs/Users/*
/Filters/*
These files are produced by compiling WinMerge, documentation etc, but that's not subject of this document, refer to Compiling.html, readme-manual.html and Translations.html.
In addition you will need Microsoft C- and MFC-runtime files. Those files are not distributes with WinMerge. Older WinMerge installers copied those runtime files to WinMerge program folder. But with VS 2005 and later this has caused a lot of installing problems for users. So now we are embedding MS's own runtime installer executable to our installer. This makes the installer executable considerable bigger but seems to be the only reliable way to install those runtime files.
You can download the latest VC2008 runtimes installer from MS: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2051A0C1-C9B5-4B0A-A8F5-770A549FD78C
Copy or move the WinMerge files into the following layout (not runtimes):
Build/
expat
libexpat.dll
Manual/htmlhelp
WinMerge.chm
MergeUnicodeRelease/
MergeLang.dll
ShellExtensionU.dll
WinMergeU.exe
pcre/
pcre.dll
ShellExtensionX64/
ShellExtensionX64.dll
Docs/
Users
Docs/Users
folder to hereFilters/
FileFilter.tmpl
*.flt
Installer/
InnoSetup/
Installer/InnoSetup
folder to herePlugins/
dlls/
Plugins/dlls
folder to hereTranslations/
Docs
*.*
WinMerge
*.po
NOTE
If you don't need or can't compile ShellExtensionX64.dll
component,
comment or remove line:
; 64-bit version of ShellExtension Source: ..\..\Build\ShellExtensionX64\ShellExtensionX64.dll; [...]
from WinMerge.iss
Runtime files installer must be copied to the Runtimes
-folder in same level
than WinMerge source tree folder is. Not inside source tree but
outside of the source tree.
WinMerge.iss
(in InnoSetup
folder)
is script used to create WinMerge installer.
Rest of this section assumes ISTool is used. If not, then refer to InnoSetup manual for creating installer from script.
WinMerge.iss
If compile succeeds you have WinMerge-[version]-Setup.exe
in
folder /Build
. You probably want to remove unnecessary zeros
from the filename before uploading: if filename is WinMerge-2.6.0.0-Setup.exe
,
you may want to rename it to WinMerge-2.6-Setup.exe
. Not a rule, but a
recommendation.
Test installer!