Building Your First Windows Installer Using Inno Setup
A Beginner-Friendly Guide
Building Your First Windows Installer Using Inno Setup
A Beginner-Friendly Guide

When distributing a Windows application, sharing a raw .exe or a .zip file is often not enough. Users expect a smooth installation experience—automatic file placement, shortcuts, uninstall support, and a professional look.
This is where Windows installers come in. In this article, we’ll walk through how to create a fully functional Windows installer using Inno Setup, a popular and beginner-friendly installer framework. By the end, you’ll be able to build an installer that:
- Installs your application into
Program Files - Creates Start Menu and Desktop shortcuts
- Supports clean uninstallation
- Handles application versioning
No prior installer experience is required.
What Is Inno Setup?
Inno Setup is a free, open-source script-driven installation system. It is a favorite among developers because it is lightweight, fast, and handles complex tasks — like registry editing or Pascal scripting — with ease.
Why choose Inno Setup?
- Completely Free: No licensing fees for commercial use.
- Modern Standards: Supports 64-bit applications and Windows 11/10.
- Actively maintained
- Self-Contained: Generates a single
.exefor easy distribution. - Automatic Uninstaller: Automatically registers your app in “Add or Remove Programs.”
- Lightweight and fast
- Simple syntax
- Widely used in production software
Inno Setup vs Other Options (High Level)

For beginners and most desktop applications, Inno Setup is the fastest way to get started.
Getting Started
- Download Inno Setup from its official website.
- Run the installer and accept the default options.
- Once installed, launch Inno Setup Compiler.
You’ll see:
- A script editor
- A compiler
- A built-in Script Wizard (very useful for beginners)
While you can write code from scratch, the Script Wizard is the best way to start for beginners.
Creating Your First Installer Using the Wizard
The Script Wizard helps you generate a working installer without writing code.
Steps
- Open Inno Setup Compiler
- Click File → New → Script Wizard
- Follow the wizard:
- Application name & version
- Main executable file
- Installation folder (Use
{autopf}(Automatic Program Files). This ensures your app goes to the correct folder regardless of whether it is 32-bit or 64-bit.) - Additional files
- Start Menu shortcuts
- License file (optional)
At the end, click Finish and then Compile.
🎉 You now have a working installer!
The wizard generates a .iss script file, which we’ll customize next.
Understanding the Inno Setup Script Structure
The Inno Setup script (.iss) is the “blueprint” for your installer. It is divided into sections.
Example: Below are some of the sections available.
[Setup]
[Files]
[Icons]
[Run]
Each section has a specific responsibility:
- [Setup] — Installer metadata and behavior
- [Files] — Files to install
- [Icons] — Shortcuts
- [Run] — Actions after install
You don’t need to memorize everything — Inno Setup is very readable. You can find the all available sections in Inno Setup Documentation.
Writing a Minimal Installer Script
Let’s start with a simple script.
[Setup]
AppId={{A1B2C3D4-E5F6-7890-1234-56789ABCDEF0}
AppName=Sample App
AppVersion=1.0.0
DefaultDirName={autopf}\SampleApp
DefaultGroupName=Sample App
OutputDir=Output
OutputBaseFilename=SampleAppInstaller
Compression=lzma
SolidCompression=yes
; If your app is 64-bit, uncomment the line below:
; ArchitecturesInstallIn64BitMode=x64
Explanation:
AppName– Application name shown to usersAppVersion– Displayed versionDefaultDirName– Installation pathOutputDir– Where the installer EXE is generateOutputBaseFilename– Name of the installer file
This alone is enough to compile an installer shell.
Adding Application Files
To install your application files, use the [Files] section. This section maps files from your computer to the user’s computer.
[Files]
Source: "bin\MyApp.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\*"; DestDir: "{app}"; Flags: recursesubdirs
Key concepts:
{app}— This is a macro for the installation directory the user chose.recursesubdirs— Ensures all your folders and sub-folders are copied over.ignoreversion— avoids version conflicts
Best practice: keep all distributable files in a single folder (e.g., bin).
Creating Shortcuts
Shortcuts are defined in the [Icons] section.
[Icons]
Name: "{group}\Sample App"; Filename: "{app}\MyApp.exe"
Name: "{commondesktop}\Sample App"; Filename: "{app}\MyApp.exe"
{group}→ Start Menu folder{commondesktop}→ Desktop shortcut
Running Actions After Installation
To launch your app after installation:
[Run]
Filename: "{app}\MyApp.exe"; Description: "Launch Sample App"; Flags: nowait postinstall skipifsilent
This shows a checkbox on the final installer page allowing the user to launch the app.
Uninstaller Basics
Inno Setup automatically:
- Creates an uninstaller
- Registers it in Windows “Add or Remove Programs”
You don’t need to write uninstall logic unless you have special cleanup requirements. If your application creates log files or local databases that aren’t part of the original install, use [UninstallDelete] to ensure they are removed when the user uninstalls.
Example for removing extra folders:
[UninstallDelete]
Type: filesandordirs; Name: "{app}\logs"
Versioning and Upgrade Support
To support upgrades correctly, use a fixed AppId.
[Setup]
AppId={A1B2C3D4-E5F6-7890-1234-56789ABCDEF0}
Why this matters:
- Same AppId → installer upgrades existing installation
- Different AppId → side-by-side installs (usually unwanted)
Always change AppVersion, never change AppId.
Customizing the Installer UI
Adding an icon:
SetupIconFile=app.ico
Adding a license agreement:
LicenseFile=license.txt
These small touches make the installer feel professional.
Code Signing (Optional but Important)
You may notice a “Windows Protected Your PC” (SmartScreen) warning when running your installer. To prevent this, you need to “Sign” your code with a certificate.
Code signing:
- Builds trust
- Reduces SmartScreen warnings
- Is recommended for production apps
While this usually requires a paid certificate, it is a crucial step for production-grade software to build user trust.
Common Errors and Debugging Tips
Common issues:
- ❌ File paths incorrect
- ❌ Missing executable
- ❌ Running installer without admin rights
Tips:
- Use absolute paths while testing
- Compile with verbose logging
- Test on a clean VM or machine
Best Practices for Beginners
- Keep scripts simple and readable
- Comment your
.issfiles - Avoid hardcoded paths
- Test upgrades and uninstall flows
- Store installer scripts in version control
When to Go Beyond Basics
Once comfortable, you can explore:
- Pascal scripting for conditions (
[Code]section) - Silent installs
- Registry manipulation
- Custom wizard pages
These are powerful but not required for most apps.
Inno Setup provides a simple yet powerful way to create Windows installers without complex tooling. With just a few script sections, you can deliver a professional installation experience that users expect.
If you’re building desktop software and want a reliable installer without steep learning curves, Inno Setup is an excellent choice.
메타데이터
- post_id
- 4a91eb387f0a
- slug
- building-your-first-windows-installer-using-inno-setup-4a91eb387f0a
- url
- https://medium.com/@resh-w/building-your-first-windows-installer-using-inno-setup-4a91eb387f0a
- canonical_url
- https://medium.com/@resh-w/building-your-first-windows-installer-using-inno-setup-4a91eb387f0a
- author_url
- https://medium.com/@resh-w
- status
- ok
- fetched_at
- 2026-06-10 08:17:25