Hi,
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:
Component
Files
RemoveFile
RemoveRegistry
Registry
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.
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
Started by
dorelsturm
, Jan 09 2008 13:17
5 replies to this topic
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.
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.
Stefan Krüger
InstallSite.org twitter facebook
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.
- 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.
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.
Download a tool and experiment with queries, then you can create your own InstallShield or whatever you want.
Edited by Server, 10 August 2011 - 13:35.
Posted 11 August 2011 - 16:57
It's very nice to create a package with WIX#.
Look here: Wix# - managed interface for WiX
http://www.csscript.net/WixSharp.html
Look here: Wix# - managed interface for WiX
http://www.csscript.net/WixSharp.html
Andreas Kerl
Inside Windows Installer 4.5
ISBN 3-86645-431-7
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.