|
This program is a real gem! Elegant and well though out. There are three people so far that are trying it based on my recommendation.
I did some further testing, and found something that seems rather odd.
What I am about to report is not really a bug, but rather is what I consider unusual and unexpected behavior. It is a judgement call on the developer's part as to whether to make this behavior be like that of most Windows installer programs or whether to keep it as is.
Here is the sequence of commands I gave in order to trigger the unusual and unexpected behavior:
I started with a fresh install. The installer offered to install to this destination folder: [ D:\Program Files\TR-2.0.0.rc.4 ].
From my notes on the last install, I knew that accepting the default would leave me with paths like this: [ D:\Program Files\TR-2.0.0.rc.4\tr-2.0.0.rc.4\tr\tr\config ] With nothing in the first "TR-2.0.0.rc.4" except another "TR-2.0.0.rc.4". Nothing wrong with that, but it is slightly unusual behavior for a windows installer. Most windows installers would have given this as the default: [ D:\Program Files\TR-2.0.0.rc.4\ ] (note trailing slash -- more on that later) and if I changed that to, for example, [ D:\TR\ ], Most windows installers would have put everything in [ D:\TR\ ], not [ D:\TR\TR-2.0.0.rc.4\ ].
Instead of accepting the default, I told the installer that I would like to install here: [ D:\Program Files\ ] and ended up with all the ThinkingRock files in this directory: [ D:\Program Files\tr-2.0.0.rc.4\ ] rather than this one (the default if you don't change the install directory): [ D:\Program Files\TR-2.0.0.rc.4\tr-2.0.0.rc.4\ ].
Everything worked fine, and I was able to do all the tests I wanted to try. The unusual and unexpected behavior happened when I uninstalled ThinkingRock.
It erased the entire contents of [ D:\Program Files\ ] then removed the [ D:\Program Files\ ] directory.
(Good thing I was on my test system...)
Further testing revealed that ThinkingRock drops a file with the unimaginative name of "uninstall.exe" one directory up from where it places all of the other files and creates a menu shortcut to it. When this file is executed, it gives a confirmation dialog that isn't all that clear as to what is about to happen, then erases everything as described above.
I tried it again with some of the directories and files marked read only. No change; it still nuked them all.
I created a file named [ TR-2.0.0.rc.4 ] in the [ D:\Program Files\ ] directory, then tried installing ThinkingRock. The result was that the Install button was gray, but there was no error message or other clue as to what was stopping it from installing.
I tried installing it to [ D:\ ] to see if I could get it to erase everything on the disk, but it wouldn't let me do that.
This is a judgement call. but in my opinion, the ThinkingRock installer / uninstaller should be changed to behave as follows:
INSTALLER
Let the user choose any install directory. Install there, not one directory down as is done now.
If the install directory isn't the default and doesn't already exist, put up a "do you want me to create it?" dialog.
If the install directory already has files in it, put up a "this directory has files/folders in it. Are you sure you want to install here?" dialog.
Throw up a descriptive error message (or let Windows display the default error message) when there is a problem such as an existing file with the name of the directory ThinkingRock wants to create. Don't just turn the install button gray with no explanation as to why.
In the destination folder dialog box, use a trailing slash to signify that this is a directory. [ D:\Program Files\TR-2.0.0.rc.4 ] is ambiguous; the user cannot look at it and tell whether it is a file or a directory. [ D:\Program Files\TR-2.0.0.rc.4\ ] can only be a directory.
Keep a log of what got installed for use by the uninstaller.
UNINSTALLER
Give it a more descriptive name such as ThinkingRock-Uninstall.exe
Give the user three uninstall options:
[1] Uninstall program only (default)
[2] Uninstall program and configuration files
[3] Uninstall program, configuration files, and all user-generated data
...and make the user type in the word "yes" (not "y", and not clicking a button) to execute #[3].
The ThinkingRock uninstaller should never, ever touch the contents of any directory that wasn't created by the ThinkingRock installer.
_________________ --
Guy Macon
http://www.GuyMacon.com
|