Jump to content

This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.

Programatically create MSI installer

5 replies to this topic


  • Full Members
  • 23 posts

Posted 09 January 2008 - 13:17


In need to create a simple MSI installer that is doing this:
- install some files in a specified directory
- remove some files from specified directories
- add registry entries
- remove registry entries
- DOES NOT appear in Add/Remove Programs (in fact the system should not see that this MSI installer was ever installed).

This MSI installer should be created programatically "on the fly" using APIs from MSI.DLL (like MsiOpenDatabase, MsiCreateRecord, etc.).

To get the previous behaviour all that I need is to add records into these tables:

Do I need to add entries in some other tables?
Where can I found examples using MSI.DLL APIs that creates a simple MSI installer inserting some stuff in the tables.

Thanks for your help.

Stefan Krueger

Stefan Krueger


  • Administrators
  • 13,269 posts

Posted 10 January 2008 - 13:36

Feature, FeatureComponents and Media tables come to mind. YOu will also need some sequence tables.
Instead of creating the msi file from scratch, maybe youd better use a template msi where you just add the rows that are not identical for each version.


  • Full Members
  • 436 posts

Posted 13 February 2008 - 08:20

QUOTE (dorelsturm @ 2008-01-09 13:17)
Where can I found examples using MSI.DLL APIs that creates a simple MSI installer inserting some stuff in the tables.

It would be *much* simpler to use the WindowsInstaller.Installer object to do this. Using MSI.DLL is a journey through hell. Trust me, I've been there, trying to coax a script to produce advertising scripts (.AAS files) for Group Policy deployment (for which the Installer object model only exposes a method in v4 and above, BTW.)
- Don't know why 'x' happened? Want to know why 'y' happened? ProcMon will tell you.
- Try using http://www.google.com before posting.
- I answer questions only via forums. Please appreciate the time I give here and don't send me personal emails.


  • Full Members
  • 10 posts

Posted 10 August 2011 - 13:34

Yes, I also thought about automatic creation of the installation packages. Currently it is partially possible with my tool (Windows Installer Query Tool). In fact it uses WIX DTF on top of MSI.dll - this helps to deal with the hell partially.

Download a tool and experiment with queries, then you can create your own InstallShield or whatever you want. smile.gif

Edited by Server, 10 August 2011 - 13:35.


  • Full Members
  • 104 posts

Posted 11 August 2011 - 16:57

It's very nice to create a package with WIX#.
Look here: Wix# - managed interface for WiX

Andreas Kerl

Inside Windows Installer 4.5
ISBN 3-86645-431-7


  • Full Members
  • 10 posts

Posted 28 January 2012 - 19:15

Good point. I agree that this kinda good and free replacement for InstallShield Automation interface. However, bad thing - last update 23:21 4 Oct '09.