Ответ 1
MSI = пакет установщика Windows
MSM = модуль слияния
Вот как объяснил мне один гуру настройки: "MSI - EXE, поскольку MSM - для LIB".
То есть, пакет MSI является автономным пакетом установщика. Вы создаете пакеты MSI для распространения среди клиентов или для их загрузки и запуска напрямую. Если MSM - это пакет установки, который нельзя установить напрямую - он должен быть включен в MSI. Например, Visual C Runtime (msvcrt90.dll и друзья) распространяются как модули слияния MSM. Если ваше приложение зависит от CRT, вы можете обратиться к Microsoft_VC100_CRT_x86.msm в свой MSI.
Существуют различные способы создания пакетов установки MSI и модулей слияния MSM. Одним из таких способов создания пакетов установки является набор инструментов WIX. Некоторые ссылки, которые могут быть интересны ниже:
http://wix.sourceforge.net/manual-wix2/overview.htm
http://wix.sourceforge.net/manual-wix2/authoring_merge_modules.htm