3 ms·
Maintaining state for uninstall is a big one which comes to mind. Reference counting (which could sort of be rolled into the above item), to make sure you're n
by RajT88 3y ago
Maintaining state for uninstall is a big one which comes to mind.
Reference counting (which could sort of be rolled into the above item), to make sure you're not removing something someone else is using, if you install stuff to a shared location.
Silent installation. Yes, this is an afterthought for a lot of devs, but a lot of techs expect it for rolling out software.
Extensibility / Customization at install time. Also ties into the previous one (how to configure the install with no UI running).
Resume-after-reboot functionality, to update files which may have been locked.
Publishing accurate information into Add/Remove Programs (or "Programs and Features" as they call it these days).
Handling elevation in cases where the user isn't Admin (or post Vista - the installer is launched under the non-admin token).
"Repair" functionality, which requires maintaining the currently installed state and configuration.
Support for packing up and deploying redistributables (maybe even download support).
You start adding all that stuff up, and you realize - you can't bang that out in a weekend. It's a LOT of work actually.
- bombcar 3y agoYou forgot "not deleting C:/Program Files/" - like Sierra Utilities (un)installer. https://groups.google.com/g/alt.games.half-life/c/15MUk17ppHM https://groups.google.com/g/alt.games.half-life/c/15MUk17ppH...
- JamesLeonis 3y agoHow could you forget the greatest effort of them all: The Third Party Partner?! * How would we install all these toolbars? * How would we change them in flight based on characteristics we can get from elevated permissions during install time? * How can we bundle adware with the installer so it works without an internet connection? * How can we subvert the Microsoft Store signing algorithm to add arbitrary unsigned payloads at the end of the executable? * How can we run unsanboxed internet-connected javascript with elevated administration privileges and direct access to Windows API? [0] * INCOHERENT QUESTIONS ABOUT METRICS?! [0]: https://en.wikipedia.org/wiki/HTML_Application https://en.wikipedia.org/wiki/HTML_Application
- KptMarchewa 3y agoOh the signing stuff... so "useful" for tracking info and pseudo-drm.
- dale_glass 3y agoOoh, I'm just going to jump on this chance, because I wondered for ages: What is "repair" for? What exactly does it do, and what's the intended use case? I rarely do much on Windows these days, but my impression was that the age of random applications dumping DLL and OCX files into system32 was fortunately long over, so programs stepping over each other should be almost nonexistent at this point.
- chiph 3y agoIt's basically a reinstall where the user's configuration and preferences are preserved. As to why - perhaps a file got corrupted (rare, these days). But often what happens is another program overwrites a shared file to one that is incompatible with your application. Or the user watches a video that tells them about this secret hack that makes your computer run faster... Story time regarding DLL naming from the old days - Windows 95 would only keep one copy of a DLL in memory (the days when having 8mb of RAM was amazing). We had developed an application that worked perfectly, except on this one salesman's laptop - where it would only work occasionally. What I found was they had installed "Tiger Woods Golf" on their machine and it had a DLL with the exact same name as ours. If the salesman played the game before running our application, Windows said "Oh, I already have that DLL. No need to load it again." and our app would blow up.