Uninstaller Configuration - Inno Setup Script
Uninstaller Configuration - Inno Setup Script
Date: 2025-01-11
Installer Script: D:\SAMAI-18-SaaS\github-repos\100-samai-desktop-installer\odoo_samai_installer.iss
🎯 Answer: Where the Uninstaller Gets Created
The Uninstaller Filename is AUTOMATIC
Inno Setup automatically creates the uninstaller executable. You cannot directly name it in the script.
Default Uninstaller Name:
unins000.exe
Location After Installation:
C:\Program Files\SAM AI\unins000.exe
📋 Uninstaller Configuration in Script
Line 36 - Display Name:
UninstallDisplayName=SAM AI Premium Business Suite
Purpose: This is the name shown in Windows "Programs and Features" (Add/Remove Programs)
Note: This does NOT change the uninstaller filename
Line 53 - Display Icon:
UninstallDisplayIcon={app}\sam\assets\sam_ai.ico
Purpose: Icon shown in Windows "Programs and Features" list
Result: SAM AI icon appears next to the program name
Line 54 - Icon File (UNUSED):
UninstallIconFile=D:\SAMAI-18-SaaS\github-repos\100-samai-desktop-installer\assets\sam_ai.ico
Status: This directive is deprecated in modern Inno Setup
Note: Use UninstallDisplayIcon instead (line 53)
🔧 How Inno Setup Creates the Uninstaller
Automatic Process:
Step 1: During installation, Inno Setup:
- Creates unins000.exe in the installation directory
- Creates unins000.dat (uninstall data file)
- Registers the uninstaller in Windows registry
Step 2: The uninstaller executable name follows this pattern:
unins000.exe ← First installation
unins001.exe ← If unins000 already exists
unins002.exe ← And so on...
Step 3: Registry entry is created at:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{8F9B3A2C-1E4D-4F5B-9C6A-7D8E9F0A1B2C}_is1
📂 Installed Uninstaller Files
After installation, the following files are created:
C:\Program Files\SAM AI\
├── unins000.exe ← Uninstaller executable
└── unins000.dat ← Uninstall data (file list, registry keys, etc.)
File Sizes:
- unins000.exe - ~700 KB (standard Inno Setup uninstaller)
- unins000.dat - Varies based on installation (contains file/registry information)
🔍 Uninstaller Configuration Details
Line 36 - UninstallDisplayName:
UninstallDisplayName=SAM AI Premium Business Suite
What it controls:
- ✅ Name in Windows "Programs and Features"
- ✅ Name in "Apps & Features" (Windows 10/11)
- ✅ Name in Start Menu uninstall shortcut (line 225)
- ❌ Does NOT control the .exe filename
Example in Windows:
Programs and Features:
└── SAM AI Premium Business Suite
└── Uninstall: C:\Program Files\SAM AI\unins000.exe
Line 225 - Start Menu Shortcut:
[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}";
Filename: "{uninstallexe}"
Result:
Start Menu\Programs\SAM AI Premium Business Suite\
└── Uninstall SAM AI Premium Business Suite.lnk
→ Points to: C:\Program Files\SAM AI\unins000.exe
❌ Why You Can't Rename It
Inno Setup Design:
Inno Setup hardcodes the uninstaller naming scheme:
- Always starts with unins
- Always uses sequential numbers (000, 001, etc.)
- Always uses .exe extension
Reasons:
- Conflict Prevention - Multiple versions can coexist
- Standard Behavior - Users expect this pattern
- Windows Compatibility - Registry entries use this pattern
- Upgrade Support - Old uninstallers remain functional
🎨 What You CAN Customize
1. Display Name (Line 36):
UninstallDisplayName=SAM AI Premium Business Suite
Change to:
UninstallDisplayName=SAM AI Business Suite
UninstallDisplayName=SAM AI v18.1
UninstallDisplayName=Your Custom Name Here
2. Display Icon (Line 53):
UninstallDisplayIcon={app}\sam\assets\sam_ai.ico
Change to point to any .ico file
3. Start Menu Shortcut Name (Line 225):
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}";
Change to:
Name: "{group}\Remove SAM AI";
Name: "{group}\Uninstall";
Name: "{group}\Remove Application";
🔄 Uninstall Process Configuration
Lines 268-271 - Pre-Uninstall Cleanup:
[UninstallRun]
Filename: "powershell.exe";
Parameters: "-ExecutionPolicy Bypass -WindowStyle Hidden -File ""{app}\scripts\cleanup_before_uninstall.ps1"" -InstallDir ""{app}""";
Flags: runhidden waituntilterminated
Purpose: Runs a PowerShell script BEFORE uninstalling files
Script: cleanup_before_uninstall.ps1
Actions:
- Stops SAM AI processes
- Closes file handles
- Cleans up temporary files
Lines 276+ - Post-Uninstall Cleanup:
[UninstallDelete]
Type: files; Name: "{app}\*.log"
Type: files; Name: "{app}\*.tmp"
Type: filesandordirs; Name: "{app}\filestore"
Type: filesandordirs; Name: "{app}\sessions"
Purpose: Deletes additional files/folders after standard uninstall
📊 Complete Uninstaller File Path Map
| Configuration | Script Line | Result |
|---|---|---|
| Executable Name | (Automatic) | C:\Program Files\SAM AI\unins000.exe |
| Data File | (Automatic) | C:\Program Files\SAM AI\unins000.dat |
| Display Name | Line 36 | "SAM AI Premium Business Suite" |
| Display Icon | Line 53 | SAM AI icon in Programs list |
| Start Menu Link | Line 225 | "Uninstall SAM AI Premium Business Suite" |
| Registry Key | Line 20 (AppId) | {8F9B3A2C-1E4D-4F5B-9C6A-7D8E9F0A1B2C}_is1 |
✅ Summary
Q: Where is the uninstaller.exe filename defined?
A: It's NOT defined in the script. Inno Setup automatically creates it as unins000.exe.
Q: Can I change the uninstaller filename?
A: No, the filename is hardcoded by Inno Setup.
Q: What CAN I customize?
A: You can customize:
- Display Name (Line 36) - Name in Programs and Features
- Display Icon (Line 53) - Icon in Programs list
- Start Menu Shortcut (Line 225) - Shortcut name
- Uninstall Behavior (Lines 268-276) - Pre/post cleanup scripts
Q: Where will it be created?
A: C:\Program Files\SAM AI\unins000.exe (automatically)
🔧 If You Want a Custom Uninstaller Name
Workaround (Not Recommended):
You could create a wrapper script that renames it, but this would:
- ❌ Break Windows uninstall registry
- ❌ Break Start Menu shortcuts
- ❌ Break "Programs and Features" functionality
- ❌ Violate Windows installer standards
Better Solution: Accept the standard unins000.exe name and customize the display name instead.
Script Location: odoo_samai_installer.iss
Key Lines: 36 (display name), 53 (icon), 225 (shortcut)
Analysis By: CTO via Claude Code