Recently on Habré there was
an article about the Adobe installer bug. This article struck me that the author, referring to the bug, concludes that even such large and well-known companies like Adobe “sometimes forget about the ease of installation.” And can “write enormous complexity and program size, but save on dynamic definition installation paths, the implementation of which even a student can do. ” Then it seemed to me that this is a stone in the garden of Adobe installer developers. Therefore, I decided to write a response post and consider the installers, their price and a couple of bugs. I have no relation to Adobe.
UPD: Added a picture of localization difficulties))
From personal experience.
Transferred InstallSHield 12 from one machine to another. The fact is that activation / deactivation of InstallSHield 12 is carried out via the Internet, it should be noted that the dejectification is performed automatically. Reinstallation was delayed for a month, since they could not activate InstallShield on a new machine, they received an error that the key was already being used on another.
The correspondence with the InstallShield support lasted until the American colleague, using coarse vocabulary, asked them to correct the situation in our favor. During the correspondence came a beautiful brochure with pictures in which it was written something like: problems with the transfer InstallShield'a? Buy a new license with more flexible settings!
And who is to blame for the fact that the uninstaller works crookedly? Developer?
')
Advice for this problem: it is necessary to be rude, if the situation requires it, loudly declare that the license costs a lot of money and the benefits of it are zero. Or buy a new license, if the conditions agree.
Multiplatform and native.
For brevity, I will call the program for creating installers "IDE", although this is not the best name. You can divide the IDE into two types of multiplatform and native.
Multi-platform - one project for multiple platforms. These are IDEs such as InstallAnywhere, InstallBuilder, InstallShield Multiplatform, Install4j. Table 1 shows the prices.
Native - one project for one family of platforms. Most often they are written for the Windows family. For example, InstallShield 2010, InnoSetup, InstallAware, and others. Table 2 shows the prices.
Needless to say, the free and paid versions of IDE are different like heaven and earth. Although this does not at all implore the works of the developers of either of the others.
From the prices we can conclude that the installers are not cheap. I am sure that at times it will be more expensive to write your IDE and on the basis of it to do an installer.
Bugs installers.
Let's start with Windows.
1. for the most part (and in the case of Adobe) installations for Windows are made on the basis of Windows Installer (.msi), like any other product it has its own bugs.
2. IDE is used in the development of the installer, like any other product it has its own bugs.
3. The installer is made by a person and he will definitely leave a couple of bugs somewhere. I repent, I have done this many times ...
4. there are licenses, and this is a very important question! Of course not for everyone :)
The situation is similar for multiplatform installers.
As you can see, not all the bugs in the installers talk about the developer.
Consider, for example, a couple of InstallAnywhere 2008 bugs, since I am working with it now. In my Enterprise version, it costs about
$ 4,500 .
This is an IDE for creating Java project installers. The good news is that when developing the installer, you can use Java to its full height :)
The figure shows an example of a standard dialog, and when the text is entered into the IDE there is a scroll. Where can I get on a rake? If any text is dynamically inserted into the text and it is very long for the user, then such a bug can pass by the developer and testers ... Who has the curves? The installer developer also has a share of the blame ...

There are actions that are not visible to the user, they run .bat files or something like that. Naturally, the path to the .bat file must be quoted in case of spaces. The IDE insolently deletes the last quotes while saving. You can get on a rake if developers and testers have met paths without spaces, and the user has a cherished space. If the previous bug was cosmetic, then the batch file just launches something necessary. Who has the hands curves? The installer developer also has a share of the blame ...
There are actions that run developer code packed in .jar files. If there is a META-INF folder in the .jar file, the code will be ignored. Quite strange, but this feature is described in the documentation ...
eyeofhell recalled a localization bug. In the picture, the translation "Uninstall completed" instead of "Delete completely"

A serious bug that stretches from version to version in InstallAnywhere. To account for the installed software is used .xml file can be found as “C: \ Program Files \ Zero G Registry \ .com.zerog.registry.xml”. The fact is that the entry in this registry occurs after the user has pressed the button “READY” on the last installation / uninstallation dialog, so he can safely reboot the computer, run another installation or something like that. The most annoying thing is that it is impossible to change this behavior. Problems that arise with this:
1. there is a record that the program is installed, but the path to it is empty ...
2. We get an error reading the file, the installer quietly says, “Hmm, a registry file of some kind of curve, I’ll make a new one” and it creates :)
To correct the situation several times on his machine, he deleted this file during development and testing.
The eternal question - what to do? Set as if nothing was? And if services are spinning, or they are and are not running, or are there conflicting features in the project? Not all files are copied to the installation directory. There is no single answer for developers, it’s necessary to proceed from the requirements of the project and the manual ...
Another question is why the xml file is used to store data about installed programs in the case of InstallAnywhere or SQLite in the case of Adobe?
This is done in order to provide a unified interface when installed on different platforms.
More than confident that the problem with the installer of Adobe products rests on issues related to the license, internal conflict of features and components, or something similar. And in no way connected with the professionalism of the developers of the installer.