1

I have a large number (> 500) of data packages (not program files) which can be independently installed. The data packages are used by our application. Whats the best way to install these data packages? I thought of msi files which are hidden in the remove software control panel. A bootstrapper would be used to select the packages to be installed.

It might be hard to produce this large number of data msi files and also hard to produce updates for such a large number of msi files.

Are there better alternatives for such a scenario?

frast
  • 2,700
  • 1
  • 25
  • 34

2 Answers2

2

If all those packages are truly independent, then using the mechanism you are proposing might make sense. There are tradeoffs if the packages are all really small because the Windows Installer adds a bit of startup hit for each package. If you can combine some packages that are likely to be updated together, that might help reduce the number of MSIs.

500 is just a lot of separate packages. In comparsion all of Visual Studio (a huge product, IMHO) is made up of ~130 MSIs.

I could see how to do this well using Burn in WiX v3.6

Rob Mensching
  • 33,834
  • 5
  • 90
  • 130
  • I looked into burn a bit. I think I would need to modify it to meet my needs. Is there a kind of Feature-Tree to select the MSIs which the user wants to install? – frast Feb 20 '12 at 22:37
  • The UI portion of the Burn (we call it a "Bootstrapper Application") is designed to be completely replaced if you don't like what comes with the WiX toolset. In fact, consider what comes in the WiX toolset as just an example and build your own "Bootstrapper Application" on top of the Burn engine. – Rob Mensching Feb 24 '12 at 08:00
  • This is good to know. It will help me that I do not have to start by zero. Thank you. – frast Feb 24 '12 at 18:44
1

It depends a bit on your exact requirements and the size of the data packages, but it might be easier to use a single installer with >500 features. In that case it also does not need to be hidden from the control panel. You can install the required features automatically from a bootstrapper or script, see WIX: How to Select Features From Command Line.

Either way if you use a single msi or 500 different msi's, I would suggest to invest in code generation to create the wxi files. And use the code generator too to generate support files at the same time, like the bootstrapper. When you have an update, you would like the code generator to do the most to avoid having to make the same change 500 times. Possibly it would be possible to use T4, see this example.

Community
  • 1
  • 1
wimh
  • 15,072
  • 6
  • 47
  • 98
  • I plan to use MajorUpgrade as update mechanism. MajorUpgrade does an uninstall followed by an install. I would not like to uninstall all data files to update the program. – frast Dec 16 '11 at 13:44