Connecting Tech Pros Worldwide Forums | Help | Site Map

MSI File format [???]

Nadav
Guest
 
Posts: n/a
#1: Nov 16 '05
Hi,

I am writing some kind of a file scanner, at certain time all of the files
under a certain directory will be scanned, this scan require de-compression
of common files formats such as ZIP and MSI, the ZIP file format is well
known so there is no problem of decompressing it manually, however, the MSI
format is less open… I wonder where can I find the MSI format ‘white papers’?
Are those ‘white papers’ are published? How can I programmatically brows .MSI
files ( without executing them )?

--
Nadav
http://www.ddevel.com

Nicholas Paldino [.NET/C# MVP]
Guest
 
Posts: n/a
#2: Nov 16 '05

re: MSI File format [???]


Nadav,

The MSI file format is not a compression format. Rather, there is a lot
of information in there about registry settings, shortcuts, etc, etc. Last
I checked, there were something like 70 different "tables" of sorts (along
with compression for data in those tables).

I think for now, the MSI format is only shared with certain vendors, and
to my knowledge, there is no published document on the MSI file format. To
that end, you might have to go with a third party that is a trusted vendor
(I believe one of the installation packages handles MSI file formats) and
interface with that.

Hope this helps.


--
- Nicholas Paldino [.NET/C# MVP]
- mvp@spam.guard.caspershouse.com

"Nadav" <Nadav@discussions.microsoft.com> wrote in message
news:FA35F044-ABFF-4054-8983-40305F868159@microsoft.com...[color=blue]
> Hi,
>
> I am writing some kind of a file scanner, at certain time all of the files
> under a certain directory will be scanned, this scan require
> de-compression
> of common files formats such as ZIP and MSI, the ZIP file format is well
> known so there is no problem of decompressing it manually, however, the
> MSI
> format is less open. I wonder where can I find the MSI format 'white
> papers'?
> Are those 'white papers' are published? How can I programmatically brows
> .MSI
> files ( without executing them )?
>
> --
> Nadav
> http://www.ddevel.com[/color]


Scott Allen
Guest
 
Posts: n/a
#3: Nov 16 '05

re: MSI File format [???]


It's unfortunately a non-trivial task.

There is a set of API functions to programatically work with MSI
files. Inside of the MSI file there is actually a set of database
tables with relationships. You can read more in the Platform SDK:
http://msdn.microsoft.com/library/de..._reference.asp

Something else you might look at is Wix, which is a project Microsoft
has open sourced. You can "decompile" an MSI file into XML (and vice
versa):
http://sourceforge.net/projects/wix


--
Scott
http://www.OdeToCode.com/blogs/scott/

On Thu, 18 Nov 2004 08:03:05 -0800, "Nadav"
<Nadav@discussions.microsoft.com> wrote:
[color=blue]
>Hi,
>
>I am writing some kind of a file scanner, at certain time all of the files
>under a certain directory will be scanned, this scan require de-compression
>of common files formats such as ZIP and MSI, the ZIP file format is well
>known so there is no problem of decompressing it manually, however, the MSI
>format is less open… I wonder where can I find the MSI format ‘white papers’?
>Are those ‘white papers’ are published? How can I programmatically brows .MSI
>files ( without executing them )?[/color]

Howard Swope
Guest
 
Posts: n/a
#4: Nov 16 '05

re: MSI File format [???]


There is a utility provided with the SDK called ORCA that will allow you to
see the information in table format It might aid you in your efforts.

"Nadav" <Nadav@discussions.microsoft.com> wrote in message
news:FA35F044-ABFF-4054-8983-40305F868159@microsoft.com...[color=blue]
> Hi,
>
> I am writing some kind of a file scanner, at certain time all of the files
> under a certain directory will be scanned, this scan require[/color]
de-compression[color=blue]
> of common files formats such as ZIP and MSI, the ZIP file format is well
> known so there is no problem of decompressing it manually, however, the[/color]
MSI[color=blue]
> format is less open. I wonder where can I find the MSI format 'white[/color]
papers'?[color=blue]
> Are those 'white papers' are published? How can I programmatically brows[/color]
..MSI[color=blue]
> files ( without executing them )?
>
> --
> Nadav
> http://www.ddevel.com[/color]


Nadav
Guest
 
Posts: n/a
#5: Nov 16 '05

re: MSI File format [???]


Hi Scott,

- Thanks for your immediate response, I need to figure out a way to extract
a single file from the MSI package with out doing any special installation
procedure.
- I was looking at the Msi API you were referring to , BUT, I didn't find an
API to extract a single file from the installation package, I can use the
'MsiInstallMissingFile' API, BUT, I assume that this will copy the file and
will perform additional installation procedure ( such as registering the file
), however, I need to extract the file with out installing it...

Any help would be appreciated...[*] How could I extract a single file from the MSI package with out
installing it ( e.g. registering it ) ?

Thanks in advance,
Nadav.
http://www.ddevel.com


"Scott Allen" wrote:
[color=blue]
> It's unfortunately a non-trivial task.
>
> There is a set of API functions to programatically work with MSI
> files. Inside of the MSI file there is actually a set of database
> tables with relationships. You can read more in the Platform SDK:
> http://msdn.microsoft.com/library/de..._reference.asp
>
> Something else you might look at is Wix, which is a project Microsoft
> has open sourced. You can "decompile" an MSI file into XML (and vice
> versa):
> http://sourceforge.net/projects/wix
>
>
> --
> Scott
> http://www.OdeToCode.com/blogs/scott/
>
> On Thu, 18 Nov 2004 08:03:05 -0800, "Nadav"
> <Nadav@discussions.microsoft.com> wrote:
>[color=green]
> >Hi,
> >
> >I am writing some kind of a file scanner, at certain time all of the files
> >under a certain directory will be scanned, this scan require de-compression
> >of common files formats such as ZIP and MSI, the ZIP file format is well
> >known so there is no problem of decompressing it manually, however, the MSI
> >format is less open… I wonder where can I find the MSI format ‘white papers’?
> >Are those ‘white papers’ are published? How can I programmatically brows .MSI
> >files ( without executing them )?[/color]
>
>[/color]
psg
Guest
 
Posts: n/a
#6: Nov 16 '05

re: MSI File format [???]


"Nadav" <Nadav@discussions.microsoft.com> wrote in message
news:2CA162C0-610C-42E0-97AE-FDB231F90E73@microsoft.com...[color=blue]
> Any help would be appreciated...
>[*] How could I extract a single file from the MSI package with out
> installing it ( e.g. registering it ) ?[/color]

this might not help You, but Total Commander has a special add-on
"msi-plus.wcx" which allows user to browse through .msi files like through
..zip or .jar
it shows three sub-directories Dialogs, Streams and Tables and in Streams
folder there is .cab cabinet file that can be unpacked, and then You have
acces to installation files without installing anything

author of this add-on is Petr Bubela

RGDS PSG


Scott Allen
Guest
 
Posts: n/a
#7: Nov 16 '05

re: MSI File format [???]


HI Nadav:

You'll want to take a look at MsiRecordReadStream. It's been a while
since I have worked with the MSI API so I can't think of where the
specific examples are. You might want to poke around in the
microsoft.public.platformsdk.msi for API help.

--
Scott
http://www.OdeToCode.com/blogs/scott/

On Sun, 21 Nov 2004 00:47:01 -0800, "Nadav"
<Nadav@discussions.microsoft.com> wrote:
[color=blue]
>Hi Scott,
>
>- Thanks for your immediate response, I need to figure out a way to extract
>a single file from the MSI package with out doing any special installation
>procedure.
>- I was looking at the Msi API you were referring to , BUT, I didn't find an
>API to extract a single file from the installation package, I can use the
>'MsiInstallMissingFile' API, BUT, I assume that this will copy the file and
>will perform additional installation procedure ( such as registering the file
>), however, I need to extract the file with out installing it...
>
>Any help would be appreciated...
>[*] How could I extract a single file from the MSI package with out
>installing it ( e.g. registering it ) ?
>
>Thanks in advance,
> Nadav.
> http://www.ddevel.com
>
>
>"Scott Allen" wrote:
>[color=green]
>> It's unfortunately a non-trivial task.
>>
>> There is a set of API functions to programatically work with MSI
>> files. Inside of the MSI file there is actually a set of database
>> tables with relationships. You can read more in the Platform SDK:
>> http://msdn.microsoft.com/library/de..._reference.asp
>>
>> Something else you might look at is Wix, which is a project Microsoft
>> has open sourced. You can "decompile" an MSI file into XML (and vice
>> versa):
>> http://sourceforge.net/projects/wix
>>
>>
>> --
>> Scott
>> http://www.OdeToCode.com/blogs/scott/
>>
>> On Thu, 18 Nov 2004 08:03:05 -0800, "Nadav"
>> <Nadav@discussions.microsoft.com> wrote:
>>[color=darkred]
>> >Hi,
>> >
>> >I am writing some kind of a file scanner, at certain time all of the files
>> >under a certain directory will be scanned, this scan require de-compression
>> >of common files formats such as ZIP and MSI, the ZIP file format is well
>> >known so there is no problem of decompressing it manually, however, the MSI
>> >format is less open… I wonder where can I find the MSI format ‘white papers’?
>> >Are those ‘white papers’ are published? How can I programmatically brows .MSI
>> >files ( without executing them )?[/color]
>>
>>[/color][/color]

Closed Thread