Q:

MSI Parameter Inspection

With a windows MSI file, is there a way to grab all the possible installation parameters in .NET code?  I need to make a generic user interface to configure multiple MSI files not known until run-time – then install them together in one go. 

A:

As technically you can provide any public property on the command line, no.  You could also update private properties using a MSI transform.  You can enumerate existing properties (public or private), but there is no way of knowing what the installer itself does with them. 
If you want to know how, download the Windows SDK.  Included are a very large number of VBS scripts which show how to use the Windows Installer API.  From there you can just use normal SQL, e.g. Select * from Properties

