We have a suite of software solutions developed by a third party which are branded under our company. Using their tools we create our own XML scripts, which are used by their software, to do various things which make up the application the end user interacts with.
The software consists of several directories and several hundred files (exe, dll, xml, etc). We do not have access to any of the source code. Even though we do not own the code, we have to create the installer for the application. Our business partner gives us zips of the directories which we have to package into some kind of installer which can be given to clients.
The dilemma is that for each client there are 6 or so dynamic ini files. All other files within the application are static. What is the best solution for creating an installer that will:
- Create the necessary directories/files under Program Files
- Install shared assemblies to the GAC
- Require .NET 3.5/install it
- Create Desktop and Start Menu shortcuts
- Provide a relatively easy mechanism for updates
- Be able to include several directories/files in the install
- meaning include a directory that has 8 sub-directories and 50 files all being static across the app, and 2 client specific files
It is not feasible to add each directory/file to a Visual Studio Setup Project for each client. There has to be another way.
I think it would best suit your needs to create a base WXS file (WiX Source File) and then create a script or small internal tool that will automatically add in the required client specific files.
One other option would be to have the WXS pull the files from a folder on your server (or local computer) and simply place the proper files for the current client in the folder that will be used to pull from for the build. Neither one is particularly graceful or pretty, but both options will get the job done.