PDA

View Full Version : Question about compression


Nigg
11th June 2006, 00:43
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 :)

Afrow UK
11th June 2006, 08:58
Use CopyFiles.

-Stu

Nigg
11th June 2006, 10:30
Can you describe how this works? Cause I don't see that CopyFiles does that what I exactly need.

Afrow UK
11th June 2006, 11:31
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

Nigg
11th June 2006, 14:05
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).

Joost Verburg
11th June 2006, 14:59
The NSIS compiler also supports Linux and includes LZMA compression.

Nigg
11th June 2006, 15:13
Interesting, but i knew this before. But thats not an answer for my question too.

galil
11th June 2006, 15:19
So how is CopyFiles NOT the answer?

Nigg
11th June 2006, 15:25
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.

Afrow UK
11th June 2006, 15:31
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

Nigg
12th June 2006, 21:55
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.

Afrow UK
12th June 2006, 22:08
You'd have to copy the files individually with separate CopyFiles instructions.

-Stu

Nigg
12th June 2006, 22:18
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.

JasonFriday13
13th June 2006, 01:13
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).

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.

mariob
29th June 2006, 06:42
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.

shouman
29th June 2006, 07:32
I really appreciate this post. Keep moveing….