Commands

Run these on a Windows dev machine. This Linux workspace can write the pack, but it cannot validate Visual Studio templates, MSIX packaging, WACK, Store upload, Appium Windows driver, or WinUI launch behavior.

Environment Check

dotnet --info
dotnet --list-sdks
winget --version
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer

Confirm Developer Mode and Visual Studio workloads manually:

Settings -> System -> Advanced -> Developer Mode
Visual Studio Installer -> WinUI application development workload
Visual Studio Installer -> MSIX Packaging Tools

The current official quickstart names Visual Studio 2026 and .NET 10 SDK. Recheck the quickstart before creating a new app.

Install Templates

dotnet new install Microsoft.WindowsAppSDK.WinUI.CSharp.Templates
dotnet new list winui

Create And Run

dotnet new winui -n MyWinUIApp
cd MyWinUIApp
dotnet build
dotnet run

The official quickstart says the template includes tooling that registers a debug identity and launches with MSIX package identity during dotnet run.

Build

dotnet build --configuration Debug
dotnet build --configuration Release

For Visual Studio packaging, use the IDE path when the official docs or project template expects it:

Visual Studio -> right-click package project or app project -> Publish -> Create App Packages

Test

Pure logic tests:

dotnet test .\tests\MyApp.Core.Tests\MyApp.Core.Tests.csproj

WinUI/XAML tests need a WinUI Unit Test App or Visual Studio Test Explorer path:

Visual Studio -> Test Explorer -> Run All

When a normal MSTest, NUnit, or xUnit project references WinUI-related code, align the target framework/runtime identifiers and bootstrap property with current Microsoft testing guidance.

Package

Use Visual Studio packaging first for Store-bound MSIX because it handles Store-oriented flows and manifest checks.

Visual Studio -> Publish -> Create App Packages -> Microsoft Store or sideloading path

If your current Windows App SDK docs or tooling use winapp, record the exact docs page and command. Do not invent package commands from memory.

Runtime Deployment

Framework-dependent unpackaged or external-location apps need runtime planning:

WindowsAppRuntimeInstall.exe --quiet

Self-contained apps use an MSBuild property in the app project:

<PropertyGroup>
  <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
</PropertyGroup>

Signing

Inspect signing state before release:

Get-AuthenticodeSignature .\path\to\MyApp.exe
Get-AuthenticodeSignature .\path\to\MyApp.msix

Store MSIX submissions are re-signed by Microsoft after certification. Non-Store MSIX, MSI, and EXE distribution needs publisher-managed signing.

Store And Certification Prep

Run WACK on the Windows machine before claiming Store readiness:

Windows App Certification Kit -> Select packaged app -> Run validation suite

Partner Center actions are manual and app-specific:

Reserve app name -> configure pricing and availability -> properties -> age ratings -> packages -> Store listings -> certification notes -> submit

Gotcha: dotnet build success does not prove the MSIX installs, launches, passes certification, has correct identity, or can be submitted to the Store.