The question of choosing an installer, it seems to me, is just below the question of choosing a programming language. Curved installer can really spoil the whole impression of the product, so you need to approach with full responsibility.
Of course, the question of choosing an installation system is faced by developers under Windows - I am not particularly familiar with the installation system in other operating systems, I know only the magic command install install and about pkg-add. Therefore, I will be glad if someone illuminates this topic from the other side.
')
0. Do I need to install?
In general, the question is, of course, interesting. For Web applications, it does not make any sense, but for ordinary applications it is important. I have always believed that the installer should be done at least in order to show the user the license agreement.
Of course, there are options to show it when you first start the program, but then you have to either keep in the program configuration file or in the registry that the launch is not the first. I don’t like this option.
For many programs, the installation will simply copy the files, but, however, the installer is also a convenient reason to check the installation of all the necessary program components - .NET, the required version of MFC, administrator rights, etc.
1. And what is the choice?
In general, in the field of installation under Windows, there has long been a clear separation of installation technologies and the way in which to take these technologies as a bridle.
2. Windows Installer
Anyone who wants to create an installer should know that this is a technology that is very, very much holding the entire installation market under Windows. The reason for this is the monopoly of Microsoft in updating it to the end user.
About the technology itself, nothing bad can be said, it really exists for a long time and has been rolled back. Therefore, the task here is only to choose a tool with which you can create this same installer.
There are a lot of options here, starting with free WiX, which, I think, is very pleasant, ending with paid solutions from InstallShield, Wise, etc.
What is the positive side of Windows Installer? If you use it for automated installation of programs to the user (through the Active Directory policy), it turns out really cool. The user only logs into the system, and the program is already set for him. And all in one bottle.
I see one minus - not the most deadly compression that can be brought to mind by any archiver.
3. Not Windows Installer
However, we can take any other installer, right? Yes, but then they become an insane set, ranging from scripting solutions and ending with self-made installers. This is quite interesting (for me personally) by NSIS, since this is (almost) a full-fledged programming language - there are variables, stack, comparisons, etc.
There is Inno Setup, which is also completely free and scripted, supports good compression.
And you should not forget that InstallShield and Wise solutions can also create non-Windows Installer installers.
If we talk about my personal choice, I use NSIS, not least because there is really insanely small amount of executable code. 32 kilobytes and hello.
4. What about real cross-platform?
Honestly, for now, as far as I saw, no way. Those solutions that I saw on the basis of IzPack require a JVM to be installed, and this is not very suitable for users who do not have it at hand or not in the system.
5. References
More extensive and comprehensive review on the RSDN (thanks to
nzeemin )
Windows Installer (description and features)
WiXNSISInno setupIzpackWith love,
maniaque