Seeking Advice on Limitations of MSI/InstallAware
Posted: Wed Aug 22, 2007 9:47 am
Hello,
I have been tasked with migrating our installation system from InstallShield 3.0 (yes, 3.0) to something a bit more modern. The main reason we are still employing IS3 is because of the custom nature of our install. Please allow me to explain...
We have a main application that displays map data. The map data resides on multiple CDs, and are sold in sets by the state. Ex.: 14 CDs for California, 3 for West Virgina, and some sets - 10 CDs for New England's 6 states.
We also include (one for each state) an "Extra Data" CD, which basically consists of non-map databases to be used in conjunction with the Map CDs. These databases must be installed on the user's hard disk at install time.
Because the Application is updated 2-3 a year, it is necessary to keep it separated (via an "Installer CD") from the Map Data CDs and the Extra Data CDs. Moreover, the Map Data CDs and the Extra Data CDs are updated occasionally without necessarily updating the Installer CD. Oh, and we need a system where new states can be added to existing installations, and we need to be able to migrate older directory structures and data files into the new system.
As you can imagine, its quite complex. The existing system (in IS3) works, but has been hacked so much (like to remove the 16-bit wrapper for Windows 3.1 compatibility) that it really needs to be rewritten.
I was thinking about using an MSI-based installer. We have InstallAware 7. However, it seems to me that if the data on the "Extra Data CD" changes, the database in the main setup application (on the separate Installer CD) also needs to be changed. (I have implemented this via Web Media Blocks in IA.) This is not a good solution for us.
I also would like the data on the "Extra Data CD" to be compressed. Ideally, these compressed files could be combined onto regional DVDs which would help our warehouse and reduce duplicating costs.
Meanwhile, I don't want to create 50 or so different sub installers that effectively all do the same thing, but just with different data files.
Oh, and some states don't have all data types available, so the installer has to be able to handle that. (For example, we don't offer photos of Alaska, but we do have them for the lower 48.)
At any rate, I've been looking at trying to accomplish all of this with MSI, and I am starting to think that it will not be possible. Besides InstallAware 7, I also have InstallShield 12 (sorry.) This might be the tool to use, but I am not sure if it can elegantly deal with different combinations of Installer and Extra Data CDs, either. At first, I was considering making Merge Modules for each state's "Extra Data" - but those would have to be on the Installer CD and that won't work due to space requirements.
The other option is to abandon MSI altogether and write my own install platform in a windows scripting language like VB or WinBatch. While it would be lots of work, I would have complete control and ultimate flexibility. However, I fear that MSI based installers are going to be the norm as Windows continues to evolve - especially in Windows Vista, etc.
So, anyone have any good ideas or advice?
Thanks,
-Ed Lecuyer
Build and Release Engineer
Maptech, inc.
I have been tasked with migrating our installation system from InstallShield 3.0 (yes, 3.0) to something a bit more modern. The main reason we are still employing IS3 is because of the custom nature of our install. Please allow me to explain...
We have a main application that displays map data. The map data resides on multiple CDs, and are sold in sets by the state. Ex.: 14 CDs for California, 3 for West Virgina, and some sets - 10 CDs for New England's 6 states.
We also include (one for each state) an "Extra Data" CD, which basically consists of non-map databases to be used in conjunction with the Map CDs. These databases must be installed on the user's hard disk at install time.
Because the Application is updated 2-3 a year, it is necessary to keep it separated (via an "Installer CD") from the Map Data CDs and the Extra Data CDs. Moreover, the Map Data CDs and the Extra Data CDs are updated occasionally without necessarily updating the Installer CD. Oh, and we need a system where new states can be added to existing installations, and we need to be able to migrate older directory structures and data files into the new system.
As you can imagine, its quite complex. The existing system (in IS3) works, but has been hacked so much (like to remove the 16-bit wrapper for Windows 3.1 compatibility) that it really needs to be rewritten.
I was thinking about using an MSI-based installer. We have InstallAware 7. However, it seems to me that if the data on the "Extra Data CD" changes, the database in the main setup application (on the separate Installer CD) also needs to be changed. (I have implemented this via Web Media Blocks in IA.) This is not a good solution for us.
I also would like the data on the "Extra Data CD" to be compressed. Ideally, these compressed files could be combined onto regional DVDs which would help our warehouse and reduce duplicating costs.
Meanwhile, I don't want to create 50 or so different sub installers that effectively all do the same thing, but just with different data files.
Oh, and some states don't have all data types available, so the installer has to be able to handle that. (For example, we don't offer photos of Alaska, but we do have them for the lower 48.)
At any rate, I've been looking at trying to accomplish all of this with MSI, and I am starting to think that it will not be possible. Besides InstallAware 7, I also have InstallShield 12 (sorry.) This might be the tool to use, but I am not sure if it can elegantly deal with different combinations of Installer and Extra Data CDs, either. At first, I was considering making Merge Modules for each state's "Extra Data" - but those would have to be on the Installer CD and that won't work due to space requirements.
The other option is to abandon MSI altogether and write my own install platform in a windows scripting language like VB or WinBatch. While it would be lots of work, I would have complete control and ultimate flexibility. However, I fear that MSI based installers are going to be the norm as Windows continues to evolve - especially in Windows Vista, etc.
So, anyone have any good ideas or advice?
Thanks,
-Ed Lecuyer
Build and Release Engineer
Maptech, inc.