The evolution of installers


    A product in beautiful packaging is easier to sell. Is the program in a good installer?

    It is not a fact that the installer is an analogue of the package. It is rather the process of taking the product out of the box. Many times click “Next”, at the very end - “Finish”, and there is no neat untying of ribbons there. They tore the mica, casually opened the box - “What is inside of us?”

    The box itself is not of particular value. For some products, specially made budget packaging. But it is important that the process is predictable . If the installer is predictable, then its appearance and capabilities do not matter. But when something goes “wrong", or the user suddenly does not have enough standard options, all the flaws will come up - both in appearance and in features.

    What do installers want


    For a corporate user, for example, it will be interesting to learn how to put the program in silent mode , and which installer has command line switches . Support for the standard Windows msi installer file will be very helpful here.

    If the installer asks complex questions, it is important that they are in a language that the user understands. Guessing this language right away is another problem. The language of the operating system interface will not always be the right choice. Therefore, providing the opportunity to choose a language is an integral part of modern installers.

    We used to writeabout how you can implement the choice of language and make a "real" msi. We have learned to appreciate the traditions of different linguistic cultures and respect strict corporate requirements. But is everything taken into account? After all, someone instead of the installer wants to immediately have a portable version of the program. And users working with an account with limited rights? They simply can’t install many programs without calling an administrator. And this is not always an administrator’s mistake, more often a developer’s.

    Two in one installers


    Immediately after starting the installer, you can offer not only to install the program, but also to launch it without installation. Such a program can store configuration files and user data in one folder with the installer, acting both as an installer and a portable version. And to unpack the program from msi, you can always use the administrative installation - few people know that it was created just for this purpose. You just need to remember to delete temporary files at the end of the program.

    This approach eliminates the need to redo the concept of the huge green button "Download" on the site, because one file will be enough for those who want to install the program - and those who want to run it only once, and even those who want to carry it with them on a USB flash drive. It is easy to teach the program to work with a given settings file and store user data along a given path. It is important not to touch the registry, and in case of integration with other programs - provide support for relative paths. And do not forget that the installer file may suddenly appear on the CD :-).

    Limited Account Rights


    Home users, as well as employees of companies that employ good system administrators, do not encounter such a problem. Developers, however, too. Working on their computers with full user rights, we often forget about customer support with limited abilities rights.

    The fact is that in the Windows Installer there are two ways to install the program - for all users of the system (the most common), and for the current user who launched the installer. Moreover, in the corporate world it is not uncommon when the current user does not have enough privileges to install the program in the "for all users" mode.

    To make an installer that supports both installation methods, and runs on Windows Vista without problems (in Windows 7 they added support for the so-called “Single Package Authoring” ), the developer needs to take special actions.

    Namely, each time, before starting the installation “for the current user”, patch the msi file of the installer by setting to “1” the third bit of the special property “Word Count” in the so-called “Summary Information Stream” (which is an integral part of the msi file) . You can use the MsiSummaryInfoSetProperty function for this.(). If the msi file is digitally signed, then when installed in the "for all users" mode, there will be a "blue" UAC window. When installed in the "for current user" mode, the fact of a spoiled digital signature on the UAC does not affect, therefore, this approach works great.

    If you do not use the shamanic dances described above with a tambourine for Windows Vista, but simply set the third bit to “1” during the assembly of msi, then even the system administrator will not be able to install such msi in the “for all users” mode :-). And vice versa, if the third bit is not set, then the UAC window will be displayed, and in the worst case, an administrator password is required.

    How to pack?


    To implement these features, you need the installer exe-file. The msi file is already packed into it. The user interface engine is also desirable to make in exe, to ensure not only switching the installation language "on the fly", but also the choice of options even before starting the msi-installation. It is important not to forget about the interaction with the Windows Installer system, to ensure the correct detection of the already installed version and support for uninstalling. The corporate customer receives the same msi file as the one packaged in exe - he does not need support for portable mode or installation for the current user, and the language is indicated on the command line.

    To develop such an exe-installer, you need experience in developing user interfaces, or the ability to use the appropriate "framework". But regardless of the selected tools, you will need a deep knowledge of WinAPI and the Windows Installer API.

    And try


    The beta version of the free Advanced IP Scanner , our small testing ground for rolling in new technologies in humans , has acquired a new installer that actually implements most of the described features. And starting without installation, and changing the language, and the msi file inside - everything is in it. It is recommended to download, watch and study. :-)

    To use the language, display dialogs and launch the portable version, we used Inno Setup . Stuffing (msi) remained the same, on WiX , only now without dialogs.

    Everyone who dares to see the live all-in-one installer and take part in beta testing needs to:
    1. Download Advanced IP Scanner 2.3.226 beta.
    2. Get to know the product.
    3. Check its compatibility with your OS.
    4. Send us a bug report and / or suggestions for improvement through a special form on the beta testing page .

    Each beta tester will receive a perpetual license for Radmin 3 .

    Thank you in advance for your participation. Questions to developers and comments are welcome!

    Also popular now: