Archive: Bundle an MSI & a zip file


Bundle an MSI & a zip file
I have never worked with NSIS. I came investigating it because it has good compression.

I have a MSI file( around 4MB ) created using Installshield and a zipped up directory.

I want to create an installer which does the following
- Invoke the MSI
- Read the registry to find out where the MSI has been installed to
- Unzip the zipped up directory to that directory. The unzipping should happen silently - i.e. it shouldn't ask for directory to be unzipped to.
- Some pack files should be unpacked to jar files using unpack200.exe.

Is something like this possible through NSIS? What's the learning curve to achieve something like this?

So I am assuming any NSIS installer I create would be 12 + 4 + few MBs.

Is something like this doable with NSIS?


Yes, this will be easy to accomplish, assuming that the MSI's install directory can be read from registry properly. This means the NSIS installer needs to run at the same level as the MSI installer (admin or userlevel). You can use the File command to install files (forget about zipping anything). Extract unpack2000 to $PLUGINSDIR and run it from there using ExecWait.


To learn NSIS, start with examining NSIS\Examples\Example1.nsi and Example2.nsi. Find out what all commands do, using the command reference: http://nsis.sourceforge.net/Docs/Chapter4.html
Once you know what all the commands in those Examples do, and why, you will be well on your way to creating your own installer.


Thank you, MSG. I have gone through the examples now and also checked some basic tutorials on the webpage. Very easy learning curve. Wonderful product.