Setting Up Flutter for Windows Development
Contents
- Core Requirements
- Workflow: Installing and Configuring the SDK
- Workflow: Configuring Tooling and IDEs
- Workflow: Configuring Target Platforms
- Workflow: Building and Packaging for Windows
- Workflow: Generating and Installing Certificates
- Examples
Core Requirements
Configure the Windows environment to support both Flutter framework execution and native C/C++ compilation. Differentiate strictly between Visual Studio (required for Windows desktop C++ compilation) and VS Code (the recommended Dart/Flutter code editor).
Workflow: Installing and Configuring the SDK
Follow this sequential workflow to initialize the Flutter SDK on a Windows machine.
- Download the latest stable Flutter SDK for Windows.
- Extract the SDK to a directory with standard user privileges (e.g.,
C:\src\flutter). Do not install in protected directories likeC:\Program Files\. - Copy the absolute path to the Flutter SDK's
bindirectory. - Open Windows Environment Variables settings and append the
bindirectory path to the system or userPATHvariable. - Open a new terminal session to apply the
PATHchanges. - Feedback Loop: Run validator -> review errors -> fix.
- Execute
flutter doctor -v. - Review the output for missing dependencies or path issues.
- Resolve any flagged errors before proceeding to tooling setup.
- Execute
Workflow: Configuring Tooling and IDEs
- Install Visual Studio (not VS Code).
- Select and install the Desktop development with C++ workload during the Visual Studio installation process. This is mandatory for compiling Windows desktop applications.
- Install your preferred code editor (VS Code, Android Studio, or IntelliJ).
- Install the official Flutter and Dart extensions/plugins within your chosen editor.
Workflow: Configuring Target Platforms
Apply conditional logic based on the specific platform you are targeting for development.
If targeting Windows Desktop:
- Ensure the Visual Studio C++ workload is fully updated.
- Restart your IDE so it detects the Windows desktop device.
- To disable platforms you do not intend to compile for, execute
flutter config --no-enable-<platform>(e.g.,flutter config --no-enable-windows-desktop).
If targeting Android on Windows:
- For physical devices: Enable Developer Options and USB debugging on the device. Install the specific OEM USB drivers for Windows.
- For emulators: Open the Android Virtual Device (AVD) manager. Under "Emulated Performance" -> "Graphics acceleration", select an option specifying "Hardware" to enable hardware acceleration.
- Verify the device connection by running
flutter devices.
Workflow: Building and Packaging for Windows
To distribute a Windows desktop application, assemble the compiled executable and its required dependencies into a single distributable archive.
- Execute
flutter build windowsto compile the release build. - Navigate to
build\windows\runner\Release\. - Create a new staging directory for the distribution zip.
- Copy the following assets from the
Releasedirectory into the staging directory:- The application executable (
.exe). - All generated
.dllfiles. - The entire
datadirectory.
- The application executable (
- Copy the required Visual C++ redistributables into the staging directory alongside the executable:
msvcp140.dllvcruntime140.dllvcruntime140_1.dll
- Compress the staging directory into a
.zipfile for distribution.
Workflow: Generating and Installing Certificates
If you require a self-signed certificate for MSIX packaging or local testing, use OpenSSL.
- Install OpenSSL and add its
bindirectory to yourPATHenvironment variable. - Generate a private key:
openssl genrsa -out mykeyname.key 2048 - Generate a Certificate Signing Request (CSR):
openssl req -new -key mykeyname.key -out mycsrname.csr - Generate the signed certificate (CRT):
openssl x509 -in mycsrname.csr -out mycrtname.crt -req -signkey mykeyname.key -days 10000 - Generate the
.pfxfile:openssl pkcs12 -export -out CERTIFICATE.pfx -inkey mykeyname.key -in mycrtname.crt - Install the
.pfxcertificate on the local Windows machine. Place it in the Certificate Store under Trusted Root Certification Authorities prior to installing the application.
Examples
Windows Distribution Directory Structure
When assembling your Windows build for distribution, ensure the directory structure strictly matches the following layout before zipping:
Release_Archive/
│ my_flutter_app.exe
│ flutter_windows.dll
│ msvcp140.dll
│ vcruntime140.dll
│ vcruntime140_1.dll
│
└───data/
│ app.so
│ icudtl.dat
│ ...