MSI installer was an experimental and is now outdated.
The main installer script is in Installer/WIX
folder: WinMerge.wxs
. This file includes other needed files.
First make sure you have all needed files compiled and available:
- WinMerge executables:
WinMergeU.exe
- Executable translations:
/Translations/WinMerge/*.po
- Manual:
WinMerge.chm
- ShellExtension:
ShellExtensionU.dll
andShellExtensionX64.dll
- Documents:
/Docs/Users/*
- Filters:
/Filters/*
These files are produced by compiling WinMerge, documentation etc, but that's not subject of this document.
In addition you will need Microsoft C- and MFC-runtime merge modules. Those files are not distributes with WinMerge. By default we use VS2008 merge modules from the %CommonProgramFiles%\Merge Modules
folder:
Microsoft_VC90_CRT_x86.msm
Microsoft_VC90_MFC_x86.msm
Microsoft_VC90_CRT_x86_x64.msm
Microsoft_VC90_MFC_x86_x64.msm
Copy or move the files into the following layout:
Manual/htmlhelp
WinMerge.chm
Release/
ShellExtensionU.dll
WinMergeU.exe
ShellExtensionX64/
ShellExtensionX64.dll
Docs/
Users
- Copy the entire
Docs/Users
folder to here
- Copy the entire
Filters/
FileFilter.tmpl
*.flt
Installer/
WIX/
- Copy the entire
Installer/WIX
folder to here
- Copy the entire
Translations/
Docs
*.*
WinMerge
*.po
WinMerge.wxs
(in WIX
folder) is script used to create WinMerge MSI installer. Other tools and IDEs can be used also. For example WixEdit or SharpDevelop.
Open the Visual Studio command prompt and CD to Installer/WIX
-folder. Run command:
msbuild.exe WinMerge.wixproj
There are two commonly used parameters:
- Platform:
/p:Platform=x86
or/p:Platform=x64
- Version:
/p:ProductVersion=x.x.x
. If the version number is not given it is read fromConfig.wxi
. But then filename does not contain version number.
For example:
msbuild.exe WinMerge.wixproj /p:Platform=x86,ProductVersion=1.0.2
If the compile succeeds you have WinMerge-[platform]-Setup.msi
files in Build\WiX\Release\
folder's subfolders.
Test installer!