Universal Installer/Updater Idea

Here's my idea for a Universal Installer/Updater using the current distribution method of download packages/CDs (for maximum backwards compatibility). Universal Installer/Updater = UIU

Manifest = An XML list of all files (hashed with version) required for a full installation and a list of all registry entries required for a full installation. (other data required for install?)
Manifest Database = Includes all entries for all applications in the suite including "file" and "registry" types. A query can be run and a custom XML manifest can be built for any combination of the applications in the suite.
CC3 Server Application = Houses the Manifest Database and services to create/download a manifest, download files, and tell the UIU an update is available. Should include the customer database with their personal catalog of items and serial codes (as something at PF already does...) and way to store if a user has registered their UIU.

NOTE IF VISTA/WINDOWS 7: The UIU should prompt the user to run in Administrator mode and run all subsequent actions with those elevated permissions. This is available from the Vista/Windows 7 API (there are several applications on the market whose installs do this already).

First run: User registers the UIU and creates a user profile that then is synced with the customer database. There are several security method options here to validate serial codes, including a method of tying a UIU instance to a particular computer. If the user changes computers, then the UIU can have a "register new computer" function. Might be more complicated depending on the security structure desired.

1) The UIU starts with a simple form. You select the products you own with check boxes, browse to installation file (1) or select "load with CD"(2), and enter the serial code. The UIU should check the local computer and registry for existing products. If found the user should be given the option to uninstall all these products and remove ALL registry entries. This way, existing users can completely remove the suite cleanly before using this new tool to get a verified install. It should prompt the user first to save customized files in the current install and probably list those with location in a grid results on the form with a link to "save file" or select all results the UIU finds and "save all files".
1a) The UIU calls out to a server at PF and downloads the current manifest built from the selections made.
2) The UIU begins to prompt the user for any "load with CD" (option 2) selections and loads those files into the install directory. At this point the user should be able to either a) un-select the product (if it was accidentally selected before) or change the method (maybe they actually have a downloaded file not a CD). The UIU skips any files that don't match the manifest (expired or bad artifacts) and records those exceptions in a Delta XML.
3) The UIU then runs the installs from the local directory (option 1) loading files into the install directory. The UIU should really be hijacking the actual install run-time and pulling out files and registering DLLs on it's own, only using the CD/download package to get all standard non-updated artifacts. These really serve only as the source and UIU is the actual "installer".
4) The UIU makes all registry entries required to run the software based on components listed in the manifest.
5) The PF server houses ALL updated files. New artifacts are registered in the database.
6) The UIU then downloads all updated/missing files to the install directory as noted in the Delta XML.
7) The UIU launches CC3 and runs a build verification test against the install directory, matching up expected results/availability of the parts of the application suite against the manifest.
8) Any exceptions in installation, downloading, registry entries, or first launch should be logged with extreme details including capturing computer information and sent to PF for root cause/defect analysis. Users should be prompted to accept personal computer info being sent to PF and have the option/right to opt out (only sending application error info).

Updater Functionality.

1) New files for bugs or registry entries are entered into the database.
2) The server notices updates and tags them for an update (by date/time stamp).
3) User launches UIU and the UIU informs user that an update is available.
4) User accepts and updates the application suite.

Thoughts? Input? Modifications? Snafus?

Comments

  • Verify My Install

    Also, an option can be included letting the user verify their install when desired.

    1) Launch the UIU and select the verify install option.
    2) The UIU downloads a current manifest from PF based on the user profile/UIU profile.
    3) The UIU compares the local install to the manifest, noting discrepancies in the Delta XML file.
    4) If discrepancies, the UIU prompts the user to update the local install.
    5) If YES (OK), the UIU downloads the files noted in Delta XML file and overwrites the local install.
    6) The same build test should be ran as the install routine with any exceptions informing PF.

    You know, for the "my install stopped working!" moments. :-D
  • Sounds like you've spent a lot of time thinking about the techie stuff. How about some customer/user input?

    1. It would be nice if the installer behaved like most other Win products e.g. defaulted to the Program Files directory rather than C: drive.
    2. Uninstall doesn't actually un-install everything. I spent a big chunk of time earlier this week re-installing.
    3. Add an online Update option on CC3's Help drop-down (also Verify), or maybe even schedule and/or auto-download patches e.g. EverQuest, World of Warcraft, Norton 360, Civilization 4...
  • Vikkiw - Thanks for adding in!

    1. Until they update the .Net compatibility and tune this for Vista/Win 7 (Windows API for User Access Control...) the program actually works better from the C Drive in Vista/Win 7. But it would probably be a good idea to have it customize the install based on OS. :-D

    2. That is a great idea.

    3. Essentially, I suggested a separate application to maintain compatibility with the software/downloads already out there. I think having a menu option in CC3 that calls the UIU would be perfect. I also think being able to add a schedule/auto-update option would be awesome.
  • RalfRalf Administrator, ProFantasy 🖼️ 18 images Mapmaker
    Thanks for the ideas. We're currently looking at options to make the install process with multiple products/add-ons easier.
  • I knew there was a reason I refer to MicroSoft as the "Evil Empire". =)

    Another thought about this is having a good strategy for managing user content independently of the application. Just because you're doing an uninstall doesn't mean you never want to use CC3 again. Often it is just a case of system management. Lots of ways to skin that particular cat.
Sign In or Register to comment.