Reputation: 6431
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.
Upvotes: 2
Views: 779
Reputation: 21426
You can find a good tutorial here: http://msdn.microsoft.com/en-us/library/aa367563(VS.85).aspx
Also, a sample MSI with all the required tables is uisample.msi from the Windows SDK.
Upvotes: 3
Reputation: 32270
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! :)
Upvotes: 4