views:

389

answers:

6

I cannot find the MSI format specification. It says that its an open standard, but I don't see any documentation - just bits and pieces of information here and there.

I want to modify some .msi installer, but I want to understand first what it is doing.

+1  A: 

Sounds like you got a misunderstanding of Microsoft's promise, MSI is not listed within.

http://www.microsoft.com/interop/osp/default.mspx

Lex Li
Yet there are some 3rd party products which can create and modify .msi files
Demiurg
Those 3rd party companies may have agreements with Microsoft where they pay for additional support and information.
CodeSavvyGeek
Virtually all these 3rd party products use the public Microsoft APIs to read/write MSI files. It's all included in the Windows SDK.
sascha
+1  A: 

In my work with MSI this link Windows Installer Tools & Tips was very helpfully.

Sasha
A: 

Are you sure that .MSI database format is required to modify some installer? Have you heard about the Orca tool? If not, this MS KB article is for you:

http://support.microsoft.com/kb/255905

kopobamypa
I'm using Orca to modify the file. It is great, but that's not the point - sometimes I can guess what is the meaning of each parameter, sometimes I cannot. What I'm looking for is the specification that defines how Windows Installer uses parameters from .MSI database to install the software
Demiurg
+2  A: 

The binary format is not open, I wouldn't even go as far as calling it a standard.

However I assume it's not the file format you're concerned with (which is undocumented), but rather the tables, actions, sequences, etc. that are visible when interfacing with the MSI via the Windows Installer SDK, API, Orca, etc.

Everything is covered in the SDK documentation, however for some reason search engines don't rank the documentation very highly. Also you can no longer download the Windows Installer SDK separately, it is now bundled as part of the Windows SDK.

sascha
+1  A: 

MSI files are COM structured storage, which is described here - http://msdn.microsoft.com/en-us/library/aa380369%28VS.85%29.aspx

Ed
A: 

try 'ORCA' or you may go for WIX for creating MSI

Sunil Agarwal

related questions