Skip to content

Windows Packaging

The default packaging format creates an NSIS installer:

Terminal window
wails3 package GOOS=windows

This runs wails3 task windows:package which:

  1. Builds the application
  2. Generates the WebView2 bootstrapper
  3. Creates an NSIS installer

Output: build/windows/nsis/<AppName>-installer.exe

For Microsoft Store distribution or modern Windows deployment:

Terminal window
wails3 package GOOS=windows FORMAT=msix

Output: bin/<AppName>-<arch>.msix

NSIS configuration is in build/windows/nsis/project.nsi. Edit this file to customize:

  • Installer UI and branding
  • Installation directory
  • Start menu and desktop shortcuts
  • File associations
  • License agreement

Application metadata comes from build/windows/info.json:

{
"fixed": {
"file_version": "1.0.0"
},
"info": {
"0000": {
"ProductVersion": "1.0.0",
"CompanyName": "My Company",
"FileDescription": "My Application",
"ProductName": "MyApp"
}
}
}

Sign your executable and installer to avoid SmartScreen warnings:

Terminal window
# Using the wrapper (auto-detects platform)
wails3 sign GOOS=windows
# Or using tasks directly
wails3 task windows:sign
wails3 task windows:sign:installer

Configure signing in build/windows/Taskfile.yml:

vars:
SIGN_CERTIFICATE: "path/to/certificate.pfx"
# Or use thumbprint for certificates in Windows store
SIGN_THUMBPRINT: "certificate-thumbprint"
TIMESTAMP_SERVER: "http://timestamp.digicert.com"

Store your certificate password securely:

Terminal window
wails3 setup signing

See Signing Applications for details.

Terminal window
wails3 build GOOS=windows GOARCH=arm64
wails3 package GOOS=windows GOARCH=arm64

Install NSIS:

Terminal window
# Windows
winget install NSIS.NSIS
# Or download from https://nsis.sourceforge.io/

Your executable isn’t signed. See Code Signing above.

The installer includes a WebView2 bootstrapper that downloads the runtime if needed. If you need offline installation, download the Evergreen Standalone Installer from Microsoft.