damoncourtney / installjammer

InstallJammer Multiplatform Installer
http://www.installjammer.com/
Other
31 stars 20 forks source link

IJ registry 'necessity' #16

Open psiha opened 14 years ago

psiha commented 14 years ago

I've always considered these "install engine bookkeeping databases" (like the "InstallShield Installation Information") a pollution of my Program files (or hard drive in general). Would it be possible to just put the .log and .ver files/information in the application's installation/target folder and the .info in the Windows Registry uninstall section (so we also get the entry in the Control Panel/Add/Remove Programs applet)... What is the need for the installkit.exe in the IJ Registry/Windows folder?

damoncourtney commented 14 years ago

I don't particularly care for them either, but there needed to be a way for installers to find installations of themselves from previous runs, and it was too fragile to base it on the installation directory. You don't know where the user has put the installation directory, so how do you know where to look for a previous installation?

The Windows registry does not exist on other platforms, so using the registry was not an option. InstallJammer tries to support every platform equally, though you'll find too many places throughout the code where Windows gets babied like no other platform in order to make up for its little idiosyncrasies.

You can set a virtual text in your project called InstallRegistryInfo and set it to No, and the installer will actually store all the .log and .info files within the uninstaller itself, while the .ver file gets stored in the application directory. This will effectively remove the InstallJammer registry from the system, but you'll have no easy way to detect previous installations if you find you need them later. But, IJ will let you do it. 0-]

psiha commented 14 years ago

I'd rather say/think that the 'job' of a cross-platform installer is to >hide< not >not use< platform specifics. After all, as you say, in the end it is unavoidable anyway. Especially considering that you already support and use the Windows Registry, you put the required info into the Windows/CurrentVersion/Uninstall key so that the uninstaller would apper in the Control panel/Add/Remove Programs aplet. All it would take to remove the IJ registry on disk is to add just one or two more values to the already existing key...

ps. I need previous version detection so the 'InstallRegistryInfo=No' would not quite work.