winapp-troubleshoot

Диагностика и исправление распространенных ошибок упаковки, подписи, идентификации и SDK приложений Windows. Используйте при возникновении ошибок с упаковкой MSIX, подписью сертификатов…

npx skills add https://github.com/microsoft/winappcli --skill winapp-troubleshoot

When to use

Use this skill when:

  • Diagnosing errors from winapp CLI commands
  • Choosing the right command for a task
  • Understanding prerequisites — what each command needs and what it produces

Common errors & solutions

ErrorCauseSolution
"winapp.yaml not found"Running restore or update without configRun winapp init first, or cd to the directory containing winapp.yaml
"Package.appxmanifest not found"Running package, create-debug-identity, or cert generate --manifestRun winapp init or winapp manifest generate first, or pass --manifest <path>
"Publisher mismatch"Certificate publisher ≠ manifest publisherRegenerate cert: winapp cert generate --manifest, or edit Package.appxmanifest Identity.Publisher to match
"Access denied" / "elevation required"cert install without adminRun terminal as Administrator for winapp cert install
"Package installation failed"Cert not trusted, or stale package registrationwinapp cert install ./devcert.pfx (admin), then Get-AppxPackage <name> | Remove-AppxPackage
"Certificate not trusted"Dev cert not installed on machinewinapp cert install ./devcert.pfx (admin)
"Build tools not found"First run, tools not yet downloadedRun winapp update to download tools; ensure internet access
"Failed to add package identity"Stale debug identity or untrusted certGet-AppxPackage *yourapp* | Remove-AppxPackage to clean up, then winapp cert install and retry
"Certificate file already exists"devcert.pfx already presentUse winapp cert generate --if-exists overwrite or --if-exists skip
"Manifest already exists"Package.appxmanifest already presentUse winapp manifest generate --if-exists overwrite or edit manifest directly
run / create-debug-identity registration error 0x800704ECDeveloper Mode is disabledEnable it in Settings → Privacy & security → For developers, or Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock' -Name AllowDevelopmentWithoutDevLicense -Value 1, then retry
run / create-debug-identity registration error 0x80073CFBPackage already registered with a conflicting identityRun winapp unregister (or winapp unregister --force if the package was registered from a different project tree), then retry
App's Start menu entry launches nothing, silentlyPackage still registered after its files were deletedRun winapp unregister --prune to remove every dev registration whose files are gone

Command selection guide

Is the app a single .cs file (.NET file-based app)?
├─ Yes → winapp run <file>.cs  (builds it and generates the manifest for you)
└─ No → Does the project have a Package.appxmanifest?
   ├─ No → Do you want full setup (manifest + config + optional SDKs)?
   │       ├─ Yes → winapp init (adds Windows platform files to existing project)
   │       └─ No, just a manifest → winapp manifest generate
   └─ Yes
      ├─ Has winapp.yaml, cloned/pulled but .winapp/ folder missing?
      │  └─ winapp restore
      ├─ Want newer SDK versions?
      │  └─ winapp update
      ├─ Need a dev certificate?
      │  └─ winapp cert generate (then winapp cert install for trust)
      ├─ Need package identity for debugging? (see [Debugging Guide](https://github.com/microsoft/WinAppCli/blob/main/docs/debugging.md))
      │  ├─ Exe is in your build output folder? (most frameworks)
      │  │  └─ winapp run <build-output-dir>
      │  └─ Exe is separate from app code? (Electron, sparse testing)
      │     └─ winapp create-debug-identity <exe>
      ├─ Ready to create MSIX installer?
      │  └─ winapp package <build-output> --cert ./devcert.pfx
      ├─ Need to sign an existing file?
      │  └─ winapp sign <file> <cert>
      ├─ Need to update app icons?
      │  └─ winapp manifest update-assets ./logo.png
      ├─ Need to run SDK tools directly?
      │  └─ winapp tool <toolname> <args>
      ├─ Need to publish to Microsoft Store?
      │  └─ winapp store <args> (passthrough to Store Developer CLI)
      └─ Need the .winapp directory path for build scripts?
         └─ winapp get-winapp-path (or --global for shared cache)

Important notes:

  • winapp init adds files to an existing project — it does not create a new project
  • The key prerequisite for most commands is Package.appxmanifest, not winapp.yaml
  • winapp.yaml is only needed for SDK version management (restore/update)
  • Projects with NuGet package references (e.g., .csproj referencing Microsoft.Windows.SDK.BuildTools) can use winapp commands without winapp.yaml
  • For Electron projects, use the npm package (npm install --save-dev @microsoft/winappcli) which includes Node.js-specific commands under npx winapp node

Debugging approach quick reference

GoalCommandKey detail
Run with identity (most common)winapp run .\build\DebugRegisters loose layout + launches; a console app gets an execution alias automatically
Attach debugger to running appwinapp run .\build\Debug → attach to PIDMisses startup code
Register identity, launch manuallywinapp run .\build\Debug --no-launchLaunch via start shell:AppsFolder\<AUMID> or execution alias — not the exe directly
F5 startup debugging (IDE launches exe)winapp create-debug-identity .\bin\myapp.exeExe has identity regardless of how it's launched; best for debugging activation/startup code
Capture OutputDebugString + crash dumpwinapp run .\build\Debug --debug-outputOn crash, writes minidump and shows exception type, message, and faulting methods. Blocks other debuggers — use --no-launch if you need VS Code/WinDbg
Run and auto-cleanwinapp run .\build\Debug --unregister-on-exitUnregisters the dev package after the app exits
Launch and detach (CI)winapp run .\build\Debug --detachReturns immediately after launch; use --json to get PID for scripting
Clean up stale registrationwinapp unregisterRemoves dev-mode packages for the current project (pass a .cs for a file-based app: winapp unregister counter.cs)
Start menu entry does nothing when clickedwinapp unregister --pruneThe package is registered but its files were deleted, so activation silently fails. Prune removes every dev registration whose files are gone

Visual Studio users: If you have a packaging project, VS already handles identity and debugging from F5 — you likely don't need winapp for debugging. These workflows are for VS Code, terminal, and frameworks VS doesn't natively package.

For full details, see the Debugging Guide.

Prerequisites & state matrix

CommandRequiresCreates/Modifies
initExisting project (any framework)winapp.yaml, .winapp/, Package.appxmanifest, Assets/, .gitignore update
restorewinapp.yaml.winapp/packages/, generated projections
updatewinapp.yamlUpdates versions in winapp.yaml, reinstalls packages
manifest generateNothingPackage.appxmanifest, Assets/
manifest update-assetsPackage.appxmanifest + source imageRegenerates Assets/ icons
cert generateNothing (or Package.appxmanifest for publisher)devcert.pfx
cert installCertificate file + adminMachine certificate store
create-debug-identityPackage.appxmanifest + exe + trusted certRegisters sparse package with Windows
runBuild output folder + Package.appxmanifest; or a .csproj/.sln; or a .cs file-based app (no manifest needed — one is generated)Registers loose layout package, launches app
unregisterA .cs file-based app, or Package.appxmanifest (auto-detect or --manifest)Removes dev-mode package registrations
packageBuild output + Package.appxmanifest.msix file
signFile + certificateSigned file (in-place)
create-external-catalogDirectory with executablesCodeIntegrityExternal.cat
tool <name>Nothing (auto-downloads tools)Runs SDK tool directly
storeNothing (auto-downloads Store CLI)Passthrough to Microsoft Store Developer CLI
get-winapp-pathNothingPrints .winapp directory path

Debugging tips

  • Add --verbose (or -v) to any command for detailed output
  • Add --quiet (or -q) to suppress progress messages (useful in CI/CD)
  • Run winapp --cli-schema to get the full JSON schema of all commands and options
  • Run any command with --help for its specific usage information
  • Use winapp get-winapp-path to find where packages are stored locally
  • Use winapp get-winapp-path --global to find the shared cache location

Getting more help

Related skills

  • Setup & init: winapp-setup — adding Windows support to a project
  • Manifest: winapp-manifest — creating and editing Package.appxmanifest
  • Signing: winapp-signing — certificate generation and management
  • Packaging: winapp-package — creating MSIX installers
  • Identity: winapp-identity — enabling package identity for Windows APIs
  • Frameworks: winapp-frameworks — framework-specific guidance (Electron, .NET, C++, Rust, Flutter, Tauri)
  • MAUI: winapp-maui — packaging/signing .NET MAUI Windows apps and resolving the resizetizer manifest

CLI reference

Run winapp <command> --help for current command options, or winapp --cli-schema for the complete machine-readable command schema.

Больше skills от microsoft

oss-growth
microsoft
Персона OSS-хакера роста
agent-framework-azure-ai-py
microsoft
Создание агентов Azure AI Foundry с использованием Microsoft Agent Framework Python SDK (agent-framework-azure-ai). Используйте при создании постоянных агентов с AzureAIAgentsProvider, применении размещенных инструментов (интерпретатор кода, поиск файлов, веб-поиск), интеграции MCP-серверов, управлении потоками бесед или реализации потоковых ответов. Охватывает функциональные инструменты, структурированные выходные данные и агентов с несколькими инструментами.
development
airunway-aks-setup
microsoft
Настройка AI Runway на AKS — от пустого кластера до работающей модели. Охватывает проверку кластера, установку контроллера, оценку GPU, настройку провайдера и первое развертывание. КОГДА: «настроить AI Runway», «подключить кластер AKS», «установить AI Runway», «airunway setup», «развернуть модель на AKS», «GPU-инференс на AKS», «настройка KAITO на AKS», «запуск LLM на AKS», «vLLM на AKS», «настройка обслуживания моделей на AKS», «контроллер AI Runway».
devops
appinsights-instrumentation
microsoft
Руководство по инструментированию веб-приложений с помощью Azure Application Insights. Содержит шаблоны телеметрии, настройку SDK и справочники по конфигурации. КОГДА: как инструментировать приложение, SDK App Insights, шаблоны телеметрии, что такое App Insights, руководство по Application Insights, примеры инструментирования, лучшие практики APM.
devops
applicationinsights-web-ts
microsoft
Инструментируйте браузерные/веб-приложения с помощью JavaScript SDK Application Insights (@microsoft/applicationinsights-web). Используйте для мониторинга реальных пользователей (RUM) — просмотры страниц, клики, зависимости AJAX/fetch, исключения, пользовательские события и трассировки агентов GenAI на стороне браузера, коррелируемые с бэкенд-трассировками OpenTelemetry. Охватывает скрипт загрузчика SDK и настройку npm, расширения фреймворков (React, React Native, Angular), Click Analytics, инициализаторы телеметрии и семантические конвенции OTel GenAI для спанов агента/инструмента/модели, генерируемых из браузера.
devops
azure-ai-anomalydetector-java
microsoft
Создавайте приложения для обнаружения аномалий с помощью Azure AI Anomaly Detector SDK для Java. Используйте при реализации одномерного/многомерного обнаружения аномалий, анализа временных рядов или мониторинга на основе ИИ.
development
azure-ai-language-conversations-py
microsoft
Реализация понимания разговорного языка (CLU) с использованием Python SDK azure-ai-language-conversations. Используйте при работе с ConversationAnalysisClient для анализа намерений и сущностей в разговоре, создании NLP-функций или интеграции языкового понимания в приложения.
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 для Python. Используется для рабочих областей ML, заданий, моделей, наборов данных, вычислений и конвейеров. Триггеры: "azure-ai-ml", "MLClient", "workspace", "model registry", "training jobs", "datasets".
development