Archive: Multiple output files?


Multiple output files?
I'm working on an installation that involves thousands of files that add up to a lot of data (1.5 GB and growing!). I don't want one huge setup.exe. What I really need is a small setup.exe and a few setupxxx.dat files (one per section would be great). I looked at CopyFiles, but that would require thousands of uncompressed files on the install media. I also looked at creating a silent installer for each component, and having the main installer run each one as a child process. That kind of works, but has a bad user interface. The progress bar and status window only update as each component gets installed, rather than each file.

Please tell me there's some way to do this with NSIS, so I don't have to switch to Microsoft Installer :cry:


How about ZIP, RAR, CAB compress formats?
NSIS can handle'em :)


Originally posted by Joel
How about ZIP, RAR, CAB compress formats?
NSIS can handle'em :)
Maybe I'm being especially dense today. :( After reading the documentation and searching the FAQ and forum, I didn't see how NSIS could do this.

Let's say I have an external ZIP file. How do I get NSIS to extract it? Remember, I need to show each filename in the status window and move the progress bar, as if I was using File commands. In other words, I want to replace

Section "Name"
SetOutPath "$INSTDIR"
File "..\Foobar\file1.dat"
File "..\Foobar\file2.dat"
;...
SectionEnd


with something like

Section "Name"
SetOutPath "$INSTDIR"
Unzip "$EXEDIR\foobar.zip"
SectionEnd


and have the user experience remain exactly the same.

You could use the zipdll plugin
http://nsis.sourceforge.net/archive/....php?pageid=56

You'd still have to unpack each file and then zip. If you wanted to show each file, you can simple use a DetailPrint command for each file you are uncompressing.


This interests me as well - how would one go about finding out the paths of each unzipped file, assuming one used some sort of blanket unzipall method?