On Wednesday 06 August 2003 09:48 am, Mike McCormack wrote:
Hi,
This is a partial implementation of the Microsoft Installer (msi.dll). At the moment, it is capable of querying an MSI database with read only SQL queries, but can't use it to install anything.
Mike
Cool!
But "Micorosft Installer" might not be the most appropriate name for this implementation, eh? :P How about "Mike's Sexy Installer" ;)
Having clearly delved into this deeper than most of us, how complete would you say the documentation for MSI is? What do you think is the future outlook of this work?
Hey Greg,
The documentation for MSI is fairly incomplete. The file format was mostly undocumented, but it looks like things get better as they get more abstract ;)
Fortunately it seems fairly well structured. The database and installer parts are cleanly seperated from each other.
The next steps are:
1) create a second parser for MSI conditional expressions (and figure out how to get two parsers into the code and keep Alexandre happy ... since pure parsers require a fairly new version of bison :)
2) make the database read/write - not immediately important, but necessary later
There's undocumented interaction with shell32 to create "Advertised Shortcuts", which are evil shortcuts that contain an identifier that only MSI can understand. If you look through SHELL32.DLL from Windows 2000, you can see it links to MSI.DLL.
However, now that the database is understood, the main installer loop is a little easier... it appears that you just iterate over the "Action" tables, and do the actions in the order specified.
I don't have lots of time to work on this at the moment, so if somebody wants to have a go, I'm happy to help them out.
Mike
ps. maybe we can just call it the Wine installer...
Gregory M. Turner wrote:
Cool!
But "Micorosft Installer" might not be the most appropriate name for this implementation, eh? :P How about "Mike's Sexy Installer" ;)
Having clearly delved into this deeper than most of us, how complete would you say the documentation for MSI is? What do you think is the future outlook of this work?