The WiX library ( *.wixlib ) seems to be the best approach for distributing components in your case.
I would organize this process as follows:
- each team has a separate WiX installation project (installation library project), which is compiled into a
*.wixlib file instead of the MSI (or MSM) package - Each project develops as the component develops, and the output is divided into other teams.
- integration assembly collects all
wixlib libraries and links (light.exe) all together in one MSI package
Therefore, you will always have the final installation package with the latest component builds, which means continuous integration.
As I understand it, you will not distribute the components separately, and for the end user, it is still a reliable installation package. Therefore, merging modules can be overhead. I suspect (but not sure) that light.exe performs additional validation when linking libraries compared to the merge tool.
source share