Examples using msilib to build windows installers


I

imageguy

I have been using InnoSetup to distribute my wxpython app and ir works
great, howver, I would like to offer a *.msi installer to customers as
an option and this isn't available using Innosetup.

It would appear to me that the msilib library included with standard
python 2.5 would allow be to do this. I found the source code that
builds the python distrubition installer packages, but I was wondering
if there were other examples that I can learn from.

TIA.
 
Ad

Advertisements

M

Martin v. Löwis

It would appear to me that the msilib library included with standard
python 2.5 would allow be to do this. I found the source code that
builds the python distrubition installer packages, but I was wondering
if there were other examples that I can learn from.

Actually, the installer itself is built with Tools/msi/msilib, which
predates the msilib shipped in 2.5; the former one uses ActiveX
(automation), whereas the latter one links directly to a native
library (and hence doesn't require PythonCOM). That library was
also used (with modifications) to build Enthought Python.

In any case, the single known application of the shipped msilib
is the bdist_msi command of distutils.

If you want to start using MSI, you absolutely have to know about
the database tables and their purpose. Use orca.exe to inspect
MSI files, and try to make sense out of that. Read MSDN
documentation. msilib greatly helps in writing installers quickly,
but the "learning curve" is perhaps even steeper than "mere"
MSI, as you need to understand both the MSI principles themselves,
and then how msilib wraps it in a more compact form.

Of course, if you can manage to package your application as a
distutils package, you can just try running bdist_msi, and see
what you get.

Regards,
Martin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top