From: Colin Sampaleanu Date: 2001-03-06T13:47:03+09:00 Subject: [ruby-talk:12090] RE: Windows Installer questions I think if the two versions can peacefully coexist on the same machine, then you should probably allow installing both of them (obviously only the latter will have file associations), which means different GUIDs. While I think it's rare that you need to have two different versions of a program like, say, WinFax, installed, it's much handier to have two versions of a programming language around so you can see what's changed and resolve any issues. Maybe one simple way to resolve the installing on top issue is to default to installing to a directory name that has the version number in it, e.g. c:\ruby-1.6.2 vs. c:\ruby-1.6.3, etc., and if somebody does select a location where a previous version is already installed, force an uninstall of that version first... W/regards to the uninstaller not removing files not in the initial install, it is pretty well what any Windows uninstall will do, and I think people are generally used to it. Usually the uninstaller will provide a comment to that effect at the end. > -----Original Message----- > From: nosuzuki@e-mail.ne.jp [mailto:nosuzuki@e-mail.ne.jp]On Behalf Of > Andrew Hunt > Sent: Monday, March 05, 2001 1:10 PM > To: ruby-talk ML; ruby-talk@netlab.co.jp > Subject: [ruby-talk:12048] Windows Installer questions > > > > Hi everyone. > > I've been busily putting together a new version of the Windows > Installer for Ruby -- adding in Bernard's wonderful Windows Help files > and such -- but I've come across a problem that I'd like to get some > input on. > > When I generate an installer, InstallShield assigns it a GUID > (globally unique identifier). So, suppose I build a 1.6.2 release. > Now I go back and make a few updates -- fix a few bugs, add the > Windows help files, etc. > > I've got two choices: I can keep the same GUID or generate a new one. > > Keeping the same GUID: > You download the new installer and run it - but surprise! The old > installer's maintainence screen comes up instead. It unfortunately > offers a "modify" option that looks suspiciously like an upgrade. > It isn't. You have to uninstall the old one and reinstall the new > one. > > Generating a new GUID: > You download the new installer and run it. You can install it to a > different location than the old version, and run both, but I > can't allow > you to install the new version *on top of* the old version (then you'd > have the same file registered by two different uninstalls :-) > > These scenarios are complicated by the fact that an uninstall does not > remove files that it didn't install. So if you load up your Ruby with > extensions in site_ruby, the uninstall won't remove them, the > installer will detect there is still stuff there, and complain. > > I could write code specifically for an upgrade that would > automatically run the uninstall of the old, preserve the site_ruby > additions, and create world peace, but before I embarked on that > journey I thought I'd check with ya'll to see what the expectations > were. This is the first thing I've ever done with InstallShield, so I > there might also be an easier way to do it that I'm not aware of. > > What sayest the crowd? > > /\ndy > > -- > Andrew Hunt, The Pragmatic Programmers, LLC. > Innovative Object-Oriented Software Development > web: http://www.pragmaticprogrammer.com email: > andy@pragmaticprogrammer.com > -- > Books by Andrew Hunt and David Thomas: > "The Pragmatic Programmer" (Addison-Wesley 2000) > "Programming Ruby" (Addison-Wesley 2001) > -- >