Archive: Question about compression


Question about compression
Hi all,

I just wonna know if its possible to create only a setup file which doesn't contain any files except the setup routine. I just want to compress it later so I need only the script (the setup executable). So the setup routine has to be the same, but the files shouldn't be included in it.

Thanks for any help :)


Use CopyFiles.

-Stu


Can you describe how this works? Cause I don't see that CopyFiles does that what I exactly need.


Oh so you want to compress the files seperately in say a Zip file? In which case, you can use the ZipDll plug-in.

-Stu


I dont want to compress them anyway - first. I want a Setup.exe but this Setup should't have any compressed files in it. The files are in the same (srcdir) dir and should be copied to the $INSTDIR but without unpacking before. Just a "normal" installation - but without compression :)

When you install Firefox, the files are copied to the temp-dir (with a 7zip sfx) and then, an external setup is loaded. I want to realize the same (the files + setup are going to be compressed by 7z under a linux system).


The NSIS compiler also supports Linux and includes LZMA compression.


Interesting, but i knew this before. But thats not an answer for my question too.


So how is CopyFiles NOT the answer?


because I also have a 30 MB setup with compressed fils init instead of a 100 Kb Setup (or sth) with files in the dir or I am too stupid to use it right.


You either...

A. Have the files compressed (or stored uncompressed) in the setup executable (by using File instructions);

Or

B. You store the files outside the setup executable in file format and copy them to the installation directory with the CopyFiles instruction.

-Stu


B)

Can I use CopyFiles like File with the same dialogs, status bar and messages? I tried but I only saw a Windows dialog like the dialog which is shown when you copy files with the Explorer.


You'd have to copy the files individually with separate CopyFiles instructions.

-Stu


hm, shit. I thought I could use it like:

SetOutPath "$INSTDIR\audio\bgm"
SetOverwrite off
File "Silbermond - Der harte Weg zum Ruhm\audio\bgm\Drumloop.ogg"
File "Silbermond - Der harte Weg zum Ruhm\audio\bgm\Intro.ogg"
File "Silbermond - Der harte Weg zum Ruhm\audio\bgm\Level1-outside.ogg"
File "Silbermond - Der harte Weg zum Ruhm\audio\bgm\Unerkannt.ogg"
SetOutPath "$INSTDIR\audio\bgs"
File "Silbermond - Der harte Weg zum Ruhm\audio\bgs\001-Wind01.ogg"
File "Silbermond - Der harte Weg zum Ruhm\audio\bgs\002-Wind02.ogg"
Thanks for your help.

You can, but why would you want behaviour like this? Using copyfiles is one way of doing it, it just does not show the files on the installer dialog. You can use this in you installer, but you have to go without the info of the current files being copied.

The way I would go is including the files into one setup file (SetCompress off), and then make the 7zip sfx (which will compress your setup program).

[edit]Forgot to add that it is my birthday today. I have just turned twenty (20). This is also where my nickname came from, from being born on Friday the 13th.[/edit]


Hi!

I also need behaviour like that. Here is why.
I have client-server application and installation goes like this.
First, I create a shared folder on server in which I put installation files. Now, I put complete installation (one EXE in which are all the files) and I put all that files again together with exe).

Installation on client machines is run from that shared folder. The reason why files must not be compiled in EXE is that client machines use those files to update.

So, server updates those files in shared folder from internet, and clients updates from that shared folder (so that I avoide all clients to connect to the internet and download same update).

To accomplish that, I would really need to have setup.exe which would contain only script and all the files to be seperately not merged in EXE.

Now I see I can accomplish that with CopyFile, but that is very compromised sollution since I either have to forget on file list being installed and progress bar or I have to implement it myself. And what's the point of installer if I have to implement the thing by my self. No big difference to write that implementation in NSIS script or Delphi.
I would like installer do the job.

So, I would really need to have an ability where NSIS would leave all the files outside EXE or even better, create required directory structure (as it would look like on client machine upon installation) in destination folder on compiling script and put all the necessery files in them and then create setup.exe which would contain script only. Of course, progress bar and all other things should work as they usually does.
For the reference, InstallShield Express could do that.


I really appreciate this post. Keep moveing….