Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Infuriating problem (related to maintenance mode)


3 replies to this topic

Robin

Robin
  • Members
  • 5 posts

Posted 23 April 2002 - 13:12

I'm almost tempted to go back to IS5 because of all the problems IS6 has caused me! :p

I am currently trying to create an installer which I can use multiple times for different data.
I removed maintenance mode and used a constant to declare a version number, so if you run the installer a second time you will only get an uninstall option, but running a newer version of the setup will allow you to run the install as usual. This seems to work nicely.

However, I need to make multiple copies of this setup (which is something I used to do in IS5), so I copy the folder itself, rename the .ipr and ._ip files and the folder itself etc.
I then change the data in the (generically named) file groups, change a couple of constants which are referenced throughout the script, change the project name, some string table entries and a script defined destination folder, so I have a new version of the setup which installs different data (to make this easier to understand, I'm installing digital map data which is used by an application, so what I'm doing is creating individual installers for each country\map rather than one big setup which allows you to choose your map from a list, making them easier to distribute electronically).

Anyway, presumably because the DISK1TARGET or something is somehow identical for both, the second one runs as if in 'update' mode, not displaying SdAskDestPath(), and installing the different data to the same location as the first installer, thinking it's the same setup but somehow subtley different enough for it *not* to ask me to uninstall...  ???

What's odd is that if it thinks it's the same setup, why doesn't it uninstall when I run the second installer? Surely, because the VERSION constant is actually the same in both, it would just uninstall rather than update, because that's what I've set it up to do under those circumstances. The only place UpdateUI() is called (AFAIK) is when the same setup is run a second time and the APP_VERSION contant is greater than it was the last time.

I have to admit that I still don't fully understand the way IS6 works in terms of maintenance mode etc. It really annoys me that I can't do things that I used to take for granted in IS5.

Maybe this is something obvious, but it's driving me mad! All I want is to be able to duplicate this setup (which on its own works just how I want it to) lots of times and only have to change a few vars and constants etc each time.

Hope someone can shed some light. Sorry about the long post ;)



Blake Miller Wonder

Blake Miller Wonder
  • Members
  • 121 posts

Posted 23 April 2002 - 14:36

You need to provide a unique setup GUID for each setup project. Then they will be treated as individual setup programs.

Open the proejct's IPR file in a text editor.
Look in section [DATA]
Create a new GUID using GuidGen.Exe and assign it to entry INSTALLATIONGUID.

Open the project's media atrributes file 'MDA' file with a text editor.
Look in section [GENERALINFO]
Create a new GUID using GuidGen.Exe and assign it to entry GUID.

You can recycle projects after doing this.

Robin

Robin
  • Members
  • 5 posts

Posted 23 April 2002 - 15:26

I'm glad there was such a simple solution! Thanks :D

Does anyone happen to know if there's a function reference available for IS6? Or a good book which outlines all the changes to the way setups work? I still occasionally use the old Installscript language reference from '98, and Leslie Easter's 'Bulletproof Installs' book, but they're both getting a bit long in the tooth now (particularly the latter) and are of little use these days.
I'm sure I can find plenty of good documentation here and around the web, but you can't beat a good reference book!

Bill K

Bill K
  • Members
  • 21 posts

Posted 23 April 2002 - 17:42

Another way to get a new GUID is to choose Project from the menu, click on Settings, choose the Application tab and click the Change button next to the GUID textbox.
I don't know of any books on IS6x but the Help is quite good and you can always use the "insert InstallScript Function" under the project menu for ideas and references.