now you’re entering the deployment stage
By default, Flutter gives you only a .exe
(inside build/windows/x64/runner/Release
).
If you want a professional installer (like normal Windows apps that come with Next → Next → Finish wizard), you need a packaging tool.
There are 3 popular ways:
Option 1: Using MSIX (Recommended by Microsoft)
- Add msix package to your project:
flutter pub add msix
- Configure
pubspec.yaml
:msix_config: display_name: My Flutter App publisher_display_name: My Company identity_name: com.mycompany.myapp msix_version: 1.0.0.0 logo_path: windows\runner\resources\app_icon.ico
- Build the installer:
flutter pub run msix:create
Output: AppName.msix
This is a modern Windows installer (like apps from Microsoft Store).
Users can just double-click to install.
Option 2: Using Inno Setup (Classic .exe
Installer)
- Download Inno Setup.
- Create a script
installer.iss
:[Setup] AppName=My Flutter App AppVersion=1.0 DefaultDirName={pf}\MyFlutterApp DefaultGroupName=My Flutter App OutputDir=installer OutputBaseFilename=MyFlutterAppSetup Compression=lzma SolidCompression=yes [Files] Source: "build\windows\x64\runner\Release\*"; DestDir: "{app}"; Flags: recursesubdirs [Icons] Name: "{group}\My Flutter App"; Filename: "{app}\my_app.exe"
- Run the script in Inno Setup → it generates
MyFlutterAppSetup.exe
.
This is the classic wizard installer (Next → Install → Finish).
Option 3: NSIS (Nullsoft Installer)
- Install NSIS.
- Write an
.nsi
script. - Compile it →
.exe
installer.
(Used by apps like Winamp, FileZilla, etc.)
Best Choice?
- If you want modern Windows style → use MSIX.
- If you want classic
.exe setup wizard
→ use Inno Setup.