View Full Version : Creating customized installs for each customer

05-31-2005, 03:57 PM

We need to customize our installer so that it installs certain files for some customers and not for others. Do you have a recommendation for the best way of doing this?

Ideally, we would love to have a single .ism file but build different setup.exe's, one for each customer (containing slightly different files). I haven't found a good way of doing this. Here are the ideas I've come up with so far:

1. Add all custom files to the .ism and use Install Conditions on reach component to choose which files to install. Ask the customer which customer they are during the install. Disadvatage: setup.exe contains files for other customers and requires extra interaction with the user

2. Have a seperate .ism for each customer. Disadvantage: hard to keep .ism's in sync when changes need to be made for all customers at once.

Is there a better way to do this? I.e. by configuring files per "Release" or by using a "Network Repository" with the shared elements or by using "InstallShield Assemblies" for the shared elements? Has anyone had success with implementing this sort of "per customer" scenario?

Thank you!

06-01-2005, 02:44 AM
Personally I would have a shared network resource and a drop down list of users in your installer. User simply selects themselves from the drop down list and they get their custom files.

Alternativly you could even include all files for all customers in your msi and then use the customer selection thing to install the required components/features.

Dont ask me how you would go about doing this as I wouln't have a clue but at least I can come up with ideas!


06-01-2005, 10:12 AM
InstallShield support was very helpful on this one -- MSI Transforms seem the way to go. Basically the idea is to have all the shared stuff in the main .ism project and then have a Transform for each customer which has that customer's custom files, modifications, etc. At build time, each transform is applied against the main .msi file to produce a customized install.

I've never used tranforms so we'll see how this goes. If anyone has any words of wisdom on this front, feel free to contribute! Thanks!