Wix generate single component id for entire tree

Solution 1:

Use one file per component - this avoids all sorts of problems (except .NET assemblies spanning multiple files). See the following thread: One file per component or several files per component?

Wix is a great framework for creating installers, but it has a steep learning curve. I strongly recommend you read a few sections of this great, online tutorial: https://www.firegiant.com/wix/tutorial/

If you are a "sample based tinkerer", you can find an even quicker, sample based tour in this article: http://www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-installer-with

Wix is hands-on. Just focus on the samples, and focus on getting the components created and a major upgrade set up:

  • How to implement WiX installer upgrade? (modern, convenience way)
  • How to get WiX major upgrade working? (legacy way - more flexible, less convenient)
  • http://wixtoolset.org/documentation/manual/v3/howtos/updates/major_upgrade.html

Once you got that running the rest of the details fall into place by reading the documentation for whatever feature you need. Using Visual Studio / Votive with intellisense ensures that you can learn as you go with features such as shortcuts, ini files, xml files, dialogs, etc...

Another top tip is to use dark.exe (part of the Wix toolkit) to decompile existing MSI files. This yields Wix XML with code you can copy and paste into your own Wix files. I use other MSI tools to compile such MSI files, and then copy the sections I need into my Wix file - just to speed up the process of creating the Wix XML. Studying the decompiled XML is very educational - a real time saver.


UPDATE, May 2021: Some more links:

  1. WiX Quick Start - Very long version
  2. WiX Quick Start - Short version