.NET MAUI Docs
Windows

Deploying a .NET MAUI App to Windows

This tutorial walks you through the steps required to package, publish, and distribute a .NET Multi-platform App UI (MAUI) application for the Windows operating system.

Prerequisites

1. Configure Your Project for Windows

Open your MAUI solution in Visual Studio and ensure the Windows platform is targeted.

dotnet new maui -n MyMauiApp
cd MyMauiApp
dotnet build -t:Run -f net8.0-windows10.0.19041.0

2. Create a Windows Installer (MSIX)

MSIX is Microsoft’s modern packaging format. Follow these steps to generate an MSIX package.

  1. Right‑click the MyMauiApp project → PublishFolder.
  2. Choose Target Runtime: win10-x64 (or win10-arm64 for ARM).
  3. Check Produce single file and Use MSIX packaging.
  4. Click Publish. The output folder will contain .msix and .appxupload files.

3. Sign the Package

Windows requires a signed package. You can use a test certificate for development or a trusted certificate for production.

# Generate a test certificate (once)
makecert -r -pe -n "CN=MyMauiAppTestCert" -ss My -sr LocalMachine -a sha256 -len 2048 -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12

# Sign the MSIX
signtool sign /fd SHA256 /a /f MyMauiAppTestCert.pfx /p <password> MyMauiApp.msix

4. Test the Package Locally

Install the signed MSIX on your machine to validate installation and runtime behavior.

powershell -Command "Add-AppxPackage -Path .\MyMauiApp.msix"

5. Publish to the Microsoft Store

Use the Microsoft Partner Center to submit your package.

6. Optional: CI/CD Automation

Integrate the packaging steps into GitHub Actions or Azure Pipelines for automated builds.

name: Build & Deploy MAUI Windows

on:
  push:
    branches: [ main ]

jobs:
  build-windows:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup .NET
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: '8.x'
      - name: Restore & Build
        run: dotnet publish -c Release -f net8.0-windows10.0.19041.0 -r win10-x64 /p:PublishReadyToRun=true /p:UseAppHost=true
      - name: Create MSIX
        run: |
          dotnet msbuild MyMauiApp.csproj /t:Package /p:Configuration=Release /p:Platform=x64 /p:AppxPackageSigningEnabled=true /p:PackageCertificateThumbprint=${{ secrets.CERT_THUMBPRINT }}
      - name: Upload Artifact
        uses: actions/upload-artifact@v3
        with:
          name: msix-package
          path: bin\Release\net8.0-windows10.0.19041.0\win10-x64\AppPackages\*.msix

On this page

Troubleshooting

IssueResolution
Package fails to install with error 0x80073B01Ensure the certificate is trusted on the target machine or use a dev test certificate and enable sideloading.
App crashes on startupCheck the Windows Event Viewer for .NET exception logs; verify all required native dependencies are packaged.
Store submission rejected: “App does not meet content policy”Review the Store Policies and update screenshots/metadata accordingly.