473,750 Members | 2,211 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

MSI File format [???]

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 programmaticall y brows .MSI
files ( without executing them )?

--
Nadav
http://www.ddevel.com
Nov 16 '05 #1
6 8562
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]
- mv*@spam.guard. caspershouse.co m

"Nadav" <Na***@discussi ons.microsoft.c om> wrote in message
news:FA******** *************** ***********@mic rosoft.com...
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 programmaticall y brows
.MSI
files ( without executing them )?

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

Nov 16 '05 #2
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"
<Na***@discussi ons.microsoft.c om> wrote:
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 programmaticall y brows .MSI
files ( without executing them )?


Nov 16 '05 #3
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" <Na***@discussi ons.microsoft.c om> wrote in message
news:FA******** *************** ***********@mic rosoft.com...
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 programmaticall y brows ..MSI files ( without executing them )?

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

Nov 16 '05 #4
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
'MsiInstallMiss ingFile' 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:
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"
<Na***@discussi ons.microsoft.c om> wrote:
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 programmaticall y brows .MSI
files ( without executing them )?


Nov 16 '05 #5
psg
"Nadav" <Na***@discussi ons.microsoft.c om> wrote in message
news:2C******** *************** ***********@mic rosoft.com...
Any help would be appreciated...
[*] How could I extract a single file from the MSI package with out
installing it ( e.g. registering it ) ?


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
Nov 16 '05 #6
HI Nadav:

You'll want to take a look at MsiRecordReadSt ream. 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.publi c.platformsdk.m si for API help.

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

On Sun, 21 Nov 2004 00:47:01 -0800, "Nadav"
<Na***@discussi ons.microsoft.c om> wrote:
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
'MsiInstallMis singFile' 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:
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"
<Na***@discussi ons.microsoft.c om> wrote:
>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 programmaticall y brows .MSI
>files ( without executing them )?



Nov 16 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
1656
by: Query Builder | last post by:
I am new to BCP. Can anyone help me understand this? I tried searching the BOL but it doesnt show much help on syntex. Lets say I have a simple table and want to out put the records into a file. Then with that output file, I want to create a format file using the BCP utillity and builk insert it into another table. Can someone explain me the syntex involved in this.. No need to go so elabrate.. Just give me a basic senario and just the...
0
3939
by: Lokkju | last post by:
I am pretty much lost here - I am trying to create a managed c++ wrapper for this dll, so that I can use it from c#/vb.net, however, it does not conform to any standard style of coding I have seen. It is almost like it is trying to implement it's own COM interfaces... below is the header, and a link to the dll+code: Zip file with header, example, and DLL:...
1
4023
by: Namratha Shah \(Nasha\) | last post by:
Hi All, This is a resource file generation tool which converts an xml based resource formats to .net resource file i.e. (.resources) and vice-versa. Today we will see how we will generate ==> .txt files from .resources or .resx files. ==> .resources files from text or .resx files.
8
7074
by: suresh_C# | last post by:
Dear All, What is difference between Portable Executable (PE) file and a Assembly? Thanks, Mahesh
2
3726
by: KR | last post by:
I am trying to copy the data in excel file into a table using the bcp and this is the code that I have. However the bcp utility does not seem to create a format file, which I thought it should do. I am probably going about this all wrong so any help would be useful. exec master..xp_cmdshell '(FOR %i IN ("E:\WUTemp\*") DO (bcp #ProspectImportTest in "%i" -fE:\WUTemp\Prospect.fmt)' bulk insert #ProspectImportTest from 'E:\WUTemp\*."'...
1
24307
by: steve | last post by:
Hi all, Here's some work in progress that should allow you to run a batch file as a custom action in a VS deployment project. Yup I know you can use js or wsh, but the target may not have either.. Essentially it's just a wrapper for the Process class and a command interpreter. Warning, it only partly works. I had wanted to pass in (a) The name of the batch file (through "BatchFileName"), and
9
8390
by: JimmyKoolPantz | last post by:
IDE: Visual Studio 2005 Language: VB.NET Fox Pro Driver Version: 9.0.0.3504 Problem: I currently have a problem altering a DBF file. I do not get any syntax errors when running the program. However, after I alter the table and open microsoft excel to look at any changes; I get the following error: "This file is not in a recognizable format" If I do open the file in excel it looks like its not formatted.
3
4029
by: forest demon | last post by:
for example, let's say I do something like, System.Diagnostics.Process.Start("notepad.exe","sample.txt"); if the user does a SaveAs (in notepad), how can i capture the path that the user selects? thanks...
3
2035
by: karthikla | last post by:
Hi Experts, Could you please help me on how to get access 2002 file format exactly while doing conversion from Access 97 file format by DBEngine.CompactDatabase() function? Code: Private Sub Command1_Click() DBEngine.CompactDatabase "c:\ss97.mdb", "c:\ss2002.mdb",
5
3363
by: sonu | last post by:
hey good morning ...... how to convert a video file in .flv format in php for linux hosting......is there any package whis provide this facility . Can i use ffmpeg for linux hosting project.......... plz help me.. thanks & regards Prabhat
0
9568
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
9335
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9256
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8257
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6801
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4709
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
3320
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
2794
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2218
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.