We're trying to re-think the installation process of our software suite and I'm trying to find out what specific pitfalls we're facing without using my/our limited lens of the Windows software landscape today.
We have gathered a set of issues that an installation of our software potentially has to handle, and I would like to gather whether these points do make sense to consider in the context of a Windows installation procedure, or whether some of those points are better left outside the context of the installation procedure.
We face to issue, for at least a subset of the application suite, to at least do the following:
- Require running 3rd party DMBS on the machine
- Pre-Install .NET Framework or vcredist or other system-wide resources
- Put Files into
SystemDrive:\Program Files
- (Optional) Automatic Update (of
Program Files
, ...) when launching some applications - Put an Icon into the Start Menu / Desktop
- Install and maintain Windows Services
- Edit registry keys pertaining to our software (i.e.
HKLM\SOFTWARE\OurShpo\...
) - "Installation" should work on Windows 7 and all versions, including server and LTSB, upwards
- "installation" should be optionally automated / no user interaction.
Is there any best practices on what and how to put these things into the installation process / or installation tools. What parts to keep hand off completely and what parts to better implement inside the application. (e.g. file-extension association is one point where I am very unsure who's job it is to fix this up.)
Disclaimer: I'm not interested in the toolchain per se here. I know there's InnoSetup, WiX, NSIS, ... and all of these can achieve some - or all - of these points somehow. The problem is deciding which of these points raise which (conceptual) problems on different Windows versions or which points don't actually make sense to put into our installation process.