I was trying to create a MSI package from scratch by making use of the ORCA tool. I wanted an installer that does nothing but still to be a valid package from the MSI package perspective. I added only two tables to the package: InstallUISequence and InstallExecuteSequence. I added them because I just wanted to support normal install initiated using the /i switch of the msiexec. When I executed the package it gave an error.
I want to know the minimum mandatory tables that are required for a MSI package to be a valid package. Also, I would like to know the reason behind those tables being mandatory.
Note: Learning is the only objective behind this question.
I would say that the starting point for you is Windows Installer documentation. As for the minimal set of required tables for a valid MSI package, I think you should take advantage of running ICE validation. In Orca, select Tools > Validate…, choose “Full MSI validation suite” and press Go. The invalid package won’t pass that validation. Each ICE error/warning has sufficient description on MSDN. and finally, when running the installation, generate a verbose log – it can answer all the questions. Happy learing! 🙂