Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Inno Setup : Exclude a directory and its files also

Tags:

inno-setup

I use the "Exclude" flag in Inno Setup in order to exclude from installation a subdirectory name "Bin32" or "Bin64" depending on the user's architecture.

All I want is to NOT install the useless folder and ALL its files and subdirectories as well.

Here are my current rules:

[Files]
Source: "Z:\Work\temp\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

; Exclude
Source: "*"; Excludes: "\Bin64"; DestDir: "{app}"; Flags: recursesubdirs; Check: not Is64BitInstallMode
Source: "*"; Excludes: "\Bin32"; DestDir: "{app}"; Flags: recursesubdirs; Check: Is64BitInstallMode

First, I don't quite understand what the "*" stands for at the beginning of the excluded rules ? Second, it works fine with all subdirectories inside Bin32/64 folder but the files are still been installed and I can't figure out a way to not install them...

Thx.

like image 934
Pierre-Louis Gottfrois Avatar asked May 18 '12 00:05

Pierre-Louis Gottfrois


People also ask

What is an Inno Setup file?

Inno Setup is a free software script-driven installation system created in Delphi by Jordan Russell. The first version was released in 1997.

How do I create a folder in Inno?

I use example script of inno download. [Code] //HERE I NEED TO CREATE FOLDER "Downloaded" procedure InitializeWizard(); begin itd_init; itd_addfile('http://link.net/soft/file.exe',expandconstant('{sd}\Downloaded\file.exe')); itd_downloadafter(wpReady); end; inno-setup.

How do I add a checkbox in Inno?

You don't have to manually create checkboxes for that. The standard way to let the user choose what to install is to use the [Types] and [Components] sections of your script file. Take a look at the Components. iss script located in your Inno Setup install folder\examples.

How do I make an inno file executable?

Go to Menu, Project, then Compile to compile and create the setup file. This will create a complete installer. Run the Setup and your application will be installed correctly. Innosetup offers an awesome alternative to create great looking Installers for free.


1 Answers

Each entry is a single operation and is not effected by any other entry. With that in mind, this is what happens:

  1. The first line installs everying from z:\work\temp.
  2. The 2nd line, if in 32-bit mode, installs everything from SourceDir except \Bin64
  3. The 3rd line, if in 64-bit mode, installs everything from SourceDir except \Bin32

I expect that your SourceDir (the script path if not specified) is the same as Z:\Work\Temp and as such, you essentially end up with everything installed anyway.

If you duplicate the first entry, and move the Excludes (without the \ prefix) and Check parameters onto it, it should work as you require:

[Files]
Source: "Z:\Work\temp\*"; Excludes: "Bin64"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: not Is64BitInstallMode
Source: "Z:\Work\temp\*"; Excludes: "Bin32"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: Is64BitInstallMode
like image 84
Deanna Avatar answered Sep 21 '22 14:09

Deanna