한국어 | English
A lightweight Windows installer framework built with WinUI 3

AT Installer is a modern, lightweight installer framework for Windows applications. It consists of two main components:
- Installer Composer - A GUI tool for creating installation packages
- Installer - The runtime installer that extracts and installs applications
The framework uses WinUI 3 with Mica backdrop for a modern Windows 11 appearance and supports multiple languages (English, Korean, Japanese, Chinese).
- Modern UI with WinUI 3 interface and Mica backdrop
- Multi-language Support (English, Korean, Japanese, Chinese)
- Simple Package Format using
.atp(AT Package) format with ZIP compression - Customizable scripts during install/uninstall
- Multi-Architecture support (x64, ARM64)
- Silent Install via command-line
- Registry Integration for proper Windows uninstaller registration
- Start Menu Integration with automatic shortcut creation
- Self-Extracting Installer creation using 7z SFX
The solution contains three projects:
Runtime installer application that handles:
- Package extraction and installation
- Registry registration
- Start menu shortcut creation
- Multi-language UI
Package creation tool featuring:
- Application manifest configuration
- Icon embedding
- Custom script configuration
- Settings save/load functionality
Shared library containing:
- ZIP compression utilities with progress reporting
- Installation and uninstallation manifest definitions
- Common helper classes
- Windows 10 (1809) or later
- .NET 10.0 SDK
- Visual Studio 2022 with WinUI 3 workload
- Clone the repository
- Open
AT Installer.slnin Visual Studio 2022 - Build the solution
- Launch InstallerComposer
- Fill in the application manifest:
- Application ID: Click "Generate" to create a unique GUID
- Application Name: Display name of your application
- Application Publisher: Publisher/Company name
- Installation Folder Name: Folder name in
%AppData%
- Set the application icon (PNG format)
- Select the Application Root Directory containing your application files
- Choose the main Executable File
- (Optional) Configure post-install/uninstall scripts
- Set the Package File Path for the output
.atpfile - Go to File > Export Package
Double-click the .atp file to launch the installer, or run via command line:
Installer.exe "path\to\package.atp"
Silent installation:
Installer.exe "path\to\package.atp" /silent
| Code | Description |
|---|---|
| 0 | Success |
| 24 | Cannot downgrade (installed version is newer) |
| 25 | Extraction failed |
| 26 | Registry registration failed |
The .atp package is a ZIP archive containing:
manifest.json: Installation manifestdata.bin: Compressed application files
Save and load package configurations for repeated builds:
- File > Save Settings
- File > Load Settings
Automate package creation by passing the config file as a command-line argument:
InstallerComposer.exe "path\to\config.aticconfig"
Download the latest release from the Releases page.
The release includes a compressed archive (Release.7z) containing tools to create self-extracting installers.
Note: Currently supports x64 and ARM64 architectures. x86 support will be added in a future release. If you need x86 right now, the Installer project itself supports x86 - you can build it from source and use the output.
The Release folder includes tools to create self-extracting (SFX) installers that bundle the AT Installer with your .atp package into a single .exe file.
Release/
├── Archive/ # x64 Installer build
│ ├── Installer.exe
│ └── (other runtime files)
├── Archive-arm64/ # ARM64 Installer build
│ ├── Installer.exe
│ └── (other runtime files)
├── 7zS.sfx # 7-Zip SFX module
├── bz.exe # Bandizip command-line tool (optional)
├── config.txt # Normal installer config
├── config_silent.txt # Silent installer config
├── createArchive.bat # Create Archive.7z from Archive folder
├── createArchive-arm64.bat # Create Archive-arm64.7z from Archive-arm64 folder
├── composeInstaller.bat # Create Installer.exe (x64)
├── composeInstaller-arm64.bat # Create Installer-arm64.exe
├── composeSilentInstaller.bat # Create silent Installer.exe (x64)
├── composeSilentInstaller-arm64.bat # Create silent Installer.exe (ARM64)
├── composeByName.bat # Create custom-named installer (x64)
└── composeByName-arm64.bat # Create custom-named installer (ARM64)
Note: The
ArchiveandArchive-arm64folders contain the published Installer runtime only. InstallerComposer is a separate development tool and not included in these folders.
Tip: If you have Bandizip installed on your system, you can delete
bz.exeas the batch files can use the system-installed Bandizip command-line tool instead.
Download Release.7z from GitHub Releases and extract it to a folder (e.g., C:\ATInstaller\Release\)
Place your .atp package file in the appropriate folder and rename it to Package.atp:
- For x64: Copy to
Release\Archive\Package.atp - For ARM64: Copy to
Release\Archive-arm64\Package.atp
Important: The file must be named exactly
Package.atp
Run the appropriate batch file to create the compressed archive:
# For x64
createArchive.bat
# For ARM64
createArchive-arm64.batThis creates Archive.7z or Archive-arm64.7z in the Release folder.
Note: These batch files use
bz.exe(Bandizip CLI) or the system-installed Bandizip to create the 7z archive.
Choose one of the following options:
Option A: Standard Installer
# For x64
composeInstaller.bat
# For ARM64
composeInstaller-arm64.batCreates Installer.exe that shows the installation UI.
Option B: Silent Installer
# For x64
composeSilentInstaller.bat
# For ARM64
composeSilentInstaller-arm64.batCreates Installer.exe that runs in silent mode (no UI).
Option C: Custom Named Installer
# For x64
composeByName.bat
# For ARM64
composeByName-arm64.batPrompts for a custom filename and creates YourName.exe.
The generated .exe file is a standalone installer that:
- Extracts the bundled files to a temporary location
- Launches
Installer.exewithPackage.atp - Installs your application
config.txt (Normal installation):
;!@Install@!UTF-8!
RunProgram="Installer.exe Package.atp"
;!@InstallEnd@!
config_silent.txt (Silent installation):
;!@Install@!UTF-8!
RunProgram="Installer.exe Package.atp /silent"
;!@InstallEnd@!
These config files tell the 7z SFX module what command to run after extraction.
# 1. Extract Release.7z
7z x Release.7z -oC:\ATInstaller\Release
# 2. Copy your package
copy MyApp.atp C:\ATInstaller\Release\Archive\Package.atp
# 3. Create archive
cd C:\ATInstaller\Release
createArchive.bat
# 4. Create installer
composeInstaller.bat
# 5. Distribute Installer.exe to your users- Framework: .NET 10.0
- UI Framework: WinUI 3 (Windows App SDK 1.8)
- Compression: ZIP with optimal compression
- Installation Location:
%AppData%\{InstallationFolderName} - Registry:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall - SFX Module: 7-Zip SFX (7zS.sfx)
- Archive Tool: Bandizip CLI (bz.exe) or system-installed Bandizip
- Supported Architectures: x64, ARM64 (x86 support coming soon)
Howon Lee (airtaxi)
- GitHub: @airtaxi
Contributions are welcome! Please feel free to submit a Pull Request.