# Inno Setup Project Template A starting point for creating Windows installers with Inno Setup. ## Quick Start 1. **Copy this folder** to a new location and rename it for your project 2. **Rename `Template.iss`** to `YourProjectName.iss` 3. **Generate a new GUID** for `AppId` (Tools > Generate GUID in Inno Setup) 4. **Update the `[Setup]` section** with your app name, version, publisher, etc. 5. **Add your files** to the `[Files]` section 6. **Compile** with Inno Setup Compiler (right-click > Compile) ## Files Included | File | Description | |------|-------------| | `Template.iss` | Main Inno Setup script with examples | | `gea-logo.ico` | Setup icon (replace with your own) | | `banner.bmp` | Wizard banner image (164x314 pixels) | | `banner-sm.bmp` | Wizard small image (55x58 pixels) | | `README.md` | This file | ## Common Tasks ### Install Files ```iss [Files] Source: "MyApp.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "Data\*"; DestDir: "{app}\Data"; Flags: ignoreversion recursesubdirs ``` ### Create Shortcuts ```iss [Icons] Name: "{group}\My App"; Filename: "{app}\MyApp.exe" Name: "{userdesktop}\My App"; Filename: "{app}\MyApp.exe"; Tasks: desktopicon ``` ### Run After Install ```iss [Run] Filename: "{app}\MyApp.exe"; Description: "Launch My App"; Flags: postinstall nowait ``` ### Check Prerequisites ```pascal function InitializeSetup: Boolean; begin Result := True; if not IsDotNet48Installed then begin MsgBox('.NET Framework 4.8 is required.', mbError, MB_OK); Result := False; end; end; ``` ### Execute PowerShell ```pascal var Output: String; begin ExecPowerShell('Get-Process | Select-Object -First 5', Output); ShowResultsDialog('Processes', Output); end; ``` ### Silent Installation ```batch :: Silent install MySetup.exe /VERYSILENT /SUPPRESSMSGBOXES :: Silent install with log MySetup.exe /VERYSILENT /LOG="C:\install.log" :: Silent uninstall MySetup.exe /VERYSILENT /UNINSTALL ``` ## Useful Constants | Constant | Description | Example | |----------|-------------|---------| | `{app}` | Application directory | `C:\Program Files\MyApp` | | `{tmp}` | Temporary directory | `C:\Users\X\AppData\Local\Temp\is-XXXXX` | | `{userdesktop}` | User's desktop | `C:\Users\X\Desktop` | | `{userdocs}` | User's documents | `C:\Users\X\Documents` | | `{commonpf}` | Program Files | `C:\Program Files` | | `{commonpf32}` | Program Files (x86) | `C:\Program Files (x86)` | | `{autopf}` | Auto Program Files | Picks 32/64-bit automatically | | `{win}` | Windows directory | `C:\Windows` | | `{sys}` | System32 directory | `C:\Windows\System32` | | `{src}` | Setup source directory | Where setup.exe is located | | `{group}` | Start Menu folder | `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\MyApp` | ## Privileges ```iss ; Requires admin (for Program Files installs) PrivilegesRequired=admin ; User-level only (no elevation) PrivilegesRequired=lowest ; Try admin, fall back to user PrivilegesRequired=lowest PrivilegesRequiredOverridesAllowed=dialog ``` ## Resources - [Inno Setup Documentation](https://jrsoftware.org/ishelp/) - [Inno Setup Download](https://jrsoftware.org/isdl.php) - [Pascal Scripting Reference](https://jrsoftware.org/ishelp/index.php?topic=scriptintro) ## Author WJDT / GE Aerospace