About choosing an installer

    The question of choosing an installer, it seems to me, stands just below the question of choosing a programming language. The crooked installer can really spoil the whole impression of the product, so you need to approach with all responsibility.



    Of course, the question of choosing an installation system is for Windows developers - I am not particularly familiar with the installation system in other operating systems, I only know the magic make install command about pkg-add. Therefore, I will be glad if someone covers this topic from the other side.

    0. Is it necessary to install?


    In general, the question, of course, is interesting. For Web applications, it does not make any sense, but for ordinary applications it is important. I always thought that the installer should be done at least in order to show the user a license agreement.

    Of course, there are options to show it when you first start the program, but then you have to either store 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 be just copying files, but, however, the installer is also a convenient reason to check if all the necessary components of the program are installed — .NET, the necessary version of MFC, the presence of administrator rights, etc.

    1. And what, is there a choice?


    In general, in the field of installation under Windows there has long been a clear separation of installation technologies and the means by which these technologies can be restrained.

    2. Windows Installer


    Anyone who wants to create an installer should know that this is a technology that very, very strongly holds the entire installation market for Windows. The reason for this is Microsoft’s monopoly in updating it with the end user.

    Nothing bad can be said about the technology itself, it really has existed 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 very installer.

    There are many options here, starting with free WiX, which, it seems to me, is very pleasant, ending with paid solutions from InstallShield, Wise, etc.

    What is the positive side of Windows Installer? If you use it for the automated installation of programs to the user (through the Active Directory policy), then it turns out really cool. The user only logs into the system, and the program is already being installed. 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 a Windows Installer


    However, we can take any other installer, right? Yes, but then they become an insane variety, ranging from scripting solutions to self-made installers. NSIS is quite interesting (for me personally), since it is an (almost) full-fledged programming language - there are variables, a stack, comparisons, etc.

    There is Inno Setup, which is also absolutely free and built on scripting, supports good compression.

    And do not forget that solutions from InstallShield and Wise can also create non-Windows Installer installers.

    If we talk about my personal choice, then I use NSIS, not least because there really is an insanely small amount of executable code. 32 kilobytes and hello.

    4. What about real cross-platform?


    Honestly, so far, as far as I saw, nothing. Those solutions that I saw based on IzPack require installing the JVM, and this is not suitable for those users who do not have it at hand or not in the system.

    5. References


    A larger and more comprehensive overview on RSDN (thanks nzeemin )
    Windows Installer (description and functions)
    WiX
    NSIS
    Inno Setup
    IzPack

    With love,
    maniaque

    Also popular now: