Anand Patel
Anand Patel

Reputation: 6431

What are those mandatory tables that are required in a valid MSI package?

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

Answers (2)

Cosmin
Cosmin

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

Yan Sklyarenko
Yan Sklyarenko

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

Related Questions