Search code examples
installationwixwindows-installerversioningpackaging

MSI packaging guidance


We're in the process of packaging combinations of our products/modules. Some of them are stand-alone some are interdependent. All versions must be deployable side-by-side. As it is we're considering two choices:

  1. One MSI per package and version
  2. One MSI per product/module and version

The first alternative would mean that combinations of the same merge modules would be delivered in several packages. The second alternative represents the simpler path.

Can you give some advice on the subject? Will any of the alternatives cause grief in the longer run?


Solution

  • If you install the same component twice, Windows Installer will just reference-count the first installation, so there's not much in the way of difference between the two. If you're already separating your components into merge modules, you're guaranteed that the components will share their GUIDs, and you will get this behaviour, and the sharing of components won't cause you any problems.

    If you make lots of little MSIs, though, such that a "package" installation will require several MSIs, you will lose the Windows Installer transactional capability - a failed installation won't roll back the previous installation - and you will probably have to look at a "chainer" application. I generally try to make as few MSIs as possible.