winui-packaging

MSIX-Paketierung, Codesignierung und Verteilung für WinUI 3-Apps — Build für Release, Zertifikatserstellung (winapp cert generate), Zertifikatsvertrauen, Code…

npx skills add https://github.com/microsoft/win-dev-skills --skill winui-packaging

Quick Reference

TaskCommand
Build for release.\BuildAndRun.ps1 . -c Release --arch x64 --no-launch
Package + signwinapp package <dir> --cert devcert.pfx
Generate + sign + packagewinapp package <dir> --generate-cert --install-cert
Generate dev certificatewinapp cert generate
Trust certificate (admin)winapp cert install ./devcert.pfx
Sign existing filewinapp sign ./app.msix ./devcert.pfx
Self-contained deploymentwinapp package <dir> --cert devcert.pfx --self-contained

End-to-End Workflow

Step 1: Build for Release

Build the project in Release configuration without launching it. Use the BuildAndRun.ps1 wrapper from the winui-dev-workflow skill — plain dotnet build does not load the bundled Microsoft.WindowsAppSDK.Analyzers, so release builds would ship without the analyzer gate that development builds get:

.\BuildAndRun.ps1 . -c Release --arch x64 --no-launch

--no-launch builds and registers a development package without starting the app. Run winapp unregister before installing the signed .msix in Step 5, so the development registration does not conflict with the packaged identity.

Step 2: Generate Certificate (one-time)

winapp cert generate --manifest .

Creates devcert.pfx (default password: password). The --manifest flag auto-matches the Publisher field in Package.appxmanifest.

Step 3: Trust Certificate (one-time, requires admin)

winapp cert install ./devcert.pfx

Adds cert to machine Trusted Root store. Persists across reboots.

Step 4: Package and Sign

winapp package <build-output-dir> --cert ./devcert.pfx

This locates appxmanifest.xml, stages the layout, generates resources.pri, creates .msix, and signs it.

Step 5: Install or Distribute

# Local install
Add-AppxPackage ./MyApp.msix

# Or double-click the .msix file

Key Rules

  • Publisher must match between certificate and manifest Identity.Publisher — use winapp cert generate --manifest to auto-match
  • Prefer winapp package --cert over separate winapp sign — one step instead of two
  • cert install requires admin — run terminal as Administrator
  • Default PFX password is password — override with --password
  • --timestamp is critical for production — without it, signatures expire with the cert:
    winapp package <dir> --cert prod.pfx --timestamp http://timestamp.digicert.com
    
  • --self-contained bundles Windows App SDK runtime — larger but no runtime dependency

CI/CD with GitHub Actions

name: Build and Package
on: [push]
jobs:
  build:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4
      - uses: microsoft/setup-WinAppCli@v0.1

      - name: Build
        run: dotnet build -c Release -p:Platform=x64

      - name: Package
        run: |
          winapp cert generate --if-exists skip --quiet
          winapp package ./bin/x64/Release/ --cert ./devcert.pfx --quiet

      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: msix-package
          path: "*.msix"

CI/CD tips:

  • Use plain dotnet build on the runner, not BuildAndRun.ps1 — the wrapper registers a development package and needs the plugin's local analyzer payload, neither of which belongs in CI. Enforce analyzer coverage on the dev machine instead.
  • Use --quiet for clean output
  • Use --if-exists skip with cert generate to avoid failures on re-runs
  • Store production PFX as a repository secret

Store Submission

  1. Partner Center account — register at partner.microsoft.com
  2. Age ratings — complete the questionnaire in Partner Center
  3. Screenshots — capture at 1366x768 minimum resolution
  4. Privacy policy — required for apps that access internet or user data
  5. Submit: upload the signed .msix / .msixbundle produced by winapp package via Microsoft Partner Center — Apps and games → your app → Packages. Microsoft Store submission is browser-based; there is no first-party CLI submit command yet.

Troubleshooting

ErrorSolution
"Publisher mismatch"Run winapp cert generate --manifest to re-generate
"Certificate not trusted"Run winapp cert install ./devcert.pfx as admin
"Access denied"cert install needs admin elevation
"Certificate file already exists"Use --if-exists overwrite or --if-exists skip
"appxmanifest.xml not found"Run winapp init or pass --manifest <path>
"Package installation failed"Trust cert first; remove stale: Get-AppxPackage <name> | Remove-AppxPackage
Signature invalid after timeRe-sign with --timestamp

References

FileRead when...
references/sourcegen-patterns.mdSetting up AOT/trimming, JSON source generators, NativeAOT readiness, CsWin32

Mehr Skills von microsoft

oss-growth
microsoft
OSS-Wachstums-Hacker-Persona
agent-framework-azure-ai-py
microsoft
Erstellen Sie Azure AI Foundry-Agents mit dem Microsoft Agent Framework Python SDK (agent-framework-azure-ai). Verwenden Sie dies beim Erstellen persistenter Agents mit AzureAIAgentsProvider, bei der Nutzung gehosteter Tools (Code-Interpreter, Dateisuche, Websuche), bei der Integration von MCP-Servern, bei der Verwaltung von Konversationsthreads oder bei der Implementierung von Streaming-Antworten. Umfasst Funktionstools, strukturierte Ausgaben und Multi-Tool-Agents.
development
airunway-aks-setup
microsoft
Richte AI Runway auf AKS ein – vom leeren Cluster bis zum laufenden Modell. Umfasst Cluster-Überprüfung, Controller-Installation, GPU-Bewertung, Provider-Einrichtung und erste Bereitstellung. WANN: „AI Runway einrichten“, „AKS-Cluster onboarden“, „AI Runway installieren“, „airunway setup“, „Modell auf AKS bereitstellen“, „GPU-Inferenz auf AKS“, „KAITO-Setup auf AKS“, „LLM auf AKS ausführen“, „vLLM auf AKS“, „Modell-Serving auf AKS einrichten“, „AI Runway-Controller“.
devops
appinsights-instrumentation
microsoft
Leitfaden zur Instrumentierung von Webanwendungen mit Azure Application Insights. Bietet Telemetriemuster, SDK-Einrichtung und Konfigurationsreferenzen. WANN: wie man eine App instrumentiert, App Insights SDK, Telemetriemuster, was ist App Insights, Application Insights-Anleitung, Instrumentierungsbeispiele, APM-Best Practices.
devops
applicationinsights-web-ts
microsoft
Instrumentieren Sie Browser-/Web-Apps mit dem Application Insights JavaScript SDK (@microsoft/applicationinsights-web). Verwenden Sie es für Real User Monitoring (RUM) – Seitenaufrufe, Klicks, AJAX/Fetch-Abhängigkeiten, Ausnahmen, benutzerdefinierte Ereignisse und browser-seitige GenAI-Agent-Traces, die mit Backend-OpenTelemetry-Traces korreliert werden. Umfasst SDK-Loader-Skript und npm-Setup, Framework-Erweiterungen (React, React Native, Angular), Click Analytics, Telemetrie-Initialisierer und OTel-GenAI-Semantik-Konventionen für Agent-/Tool-/Modell-Spans, die vom Browser ausgegeben werden.
devops
azure-ai-anomalydetector-java
microsoft
Erstellen Sie Anomalieerkennungsanwendungen mit dem Azure AI Anomaly Detector SDK für Java. Verwenden Sie dies bei der Implementierung von univariater/multivariater Anomalieerkennung, Zeitreihenanalyse oder KI-gestützter Überwachung.
development
azure-ai-language-conversations-py
microsoft
Implementieren Sie Conversational Language Understanding (CLU) mit dem azure-ai-language-conversations Python SDK. Verwenden Sie dies, wenn Sie mit ConversationAnalysisClient arbeiten, um Gesprächsabsichten und Entitäten zu analysieren, NLP-Funktionen zu erstellen oder Sprachverständnis in Anwendungen zu integrieren.
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 für Python. Verwenden für ML-Workspaces, Jobs, Modelle, Datensätze, Compute und Pipelines. Auslöser: „azure-ai-ml“, „MLClient“, „Workspace“, „Modell-Registry“, „Trainings-Jobs“, „Datensätze“.
development