davidortinau/maui-skills/maui-hot-reload-diagnostics
Claude Code and agent skill by davidortinau/maui-skills
- community
Checking that the SKILL.md file is still in the repository.
Diagnose and troubleshoot .NET MAUI Hot Reload issues (C# Hot Reload, XAML Hot Reload, Blazor Hybrid). Covers all UI approaches (XAML, MauiReactor, C# Markup, Blazor Hybrid), Visual Studio, VS Code, environment variables, encoding requirements, and MetadataUpdateHandler. USE FOR: "hot reload not working", "XAML hot reload", "C# hot reload", "UI not updating", "hot reload troubleshooting", "MetadataUpdateHandler", "hot reload Blazor Hybrid", "hot reload VS Code", "DOTNET_WATCH". DO NOT USE FOR: general build errors (not hot reload related), app lifecycle events (use maui-app-lifecycle), or performance profiling (use maui-performance).
Install
npx vskill@latest install davidortinau/maui-skills/maui-hot-reload-diagnosticsSKILL.md
.NET MAUI Hot Reload Diagnostics
Systematically diagnose Hot Reload failures for .NET MAUI apps.
Quick diagnosis checklist
- Identify what's failing: XAML Hot Reload (
.xamlchanges) vs C# Hot Reload (.cschanges) - Check run configuration: Must be Debug config, started with F5/debugger attached
- Save file and re-execute code path: C# changes require re-triggering the code
- Check Hot Reload output: View > Output > "Hot Reload" (VS) or "C# Hot Reload" (VS Code)
⚠️ File encoding requirement
CRITICAL: All `.cs` files must be UTF-8 with BOM encoding.
Common issues and fixes
"Nothing happens when I save"
- Verify Debug configuration (not Release)
- Check Hot Reload output for errors
- Ensure file is saved (not just modified)
- Re-execute the code path (navigate again, tap button again)
"Unsupported edit" / "Rude edit"
Some changes always require app restart:
- Adding/removing methods, fields, properties
- Changing method signatures
- Modifying static constructors
- Changes to generics
XAML changes don't apply (iOS)
- ⚠️ Set Linker to Don't Link in iOS build settings
- Config must be named exactly Debug
- Don't use
XamlCompilationOptions.Skip
Changes apply but UI doesn't update
- For C#: Must re-trigger the code (re-navigate, re-tap)
- Check for cached binding values or state
- Verify you're editing the correct target framework file
Framework-specific pitfalls
MauiReactor v3+
⚠️ If migrating from MauiReactor v2, remove the EnableMauiReactorHotReload() call from MauiProgram.cs.
C# Markup (CommunityToolkit.Maui.Markup)
Key points — missing any of these breaks hot reload:
- ⚠️ Extract UI building into a separate
Build()method - ⚠️ Implement
ICommunityToolkitHotReloadHandleron any page/view needing refresh - The
OnHotReload()method is called automatically after C# hot reload - Must call
.UseMauiCommunityToolkitMarkup()inMauiProgram.cs
Blazor Hybrid limitations
These changes always require restart:
- Adding new components
- Modifying
@injectservices - Static asset changes (images, fonts)
- Changes to
Program.csorMauiProgram.cs
These usually work without restart:
- Razor markup and C# code block changes
- CSS changes (may need hard refresh if cached)
- Changing component parameters
⚠️ CSS isolation: If .razor.css changes don't apply, verify the isolated CSS file is properly linked.
Decision framework — which hot reload type?
| UI approach | What reloads | Watch out for | |
|---|---|---|---|
| XAML | .xaml files (instant) | Linker must be off on iOS; config must be "Debug" | |
| C# code-behind | Method bodies only | Must re-trigger code path; rude edits require restart | |
| MauiReactor v3+ | Component re-render | Need RuntimeHostConfigurationOption, not code call | |
| C# Markup | Build() method body | Must implement ICommunityToolkitHotReloadHandler | |
| Blazor Hybrid | .razor + .css | New components/services need restart |
Debugging tips
- ⚠️ Always check the Hot Reload output window first — it tells you exactly why a change was rejected.
- Enable detailed logging with env vars before launching IDE (see
references/hot-reload-setup.md). - Binary logs (
dotnet build -bl:build.binlog) help diagnose build-related hot reload failures. - When reporting bugs, include:
dotnet --info, workload list, binary log, and Hot Reload output.
Quick checklist
- [ ] Debug configuration selected (not Release)
- [ ] Debugger attached (F5, not Ctrl+F5)
- [ ] All
.csfiles are UTF-8 with BOM - [ ] Hot Reload output window checked for errors
- [ ] Code path re-triggered after C# changes
- [ ] MauiReactor:
RuntimeHostConfigurationOptionin.csproj(not code call) - [ ] C# Markup:
ICommunityToolkitHotReloadHandlerimplemented - [ ] Blazor Hybrid: not changing services/startup code
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/maui-skills/skills/maui-hot-reload-diagnostics/SKILL.md
Popularity
- Repository stars
- 175
- Repository forks
- 20
- 7-day trend score
- 23
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 27 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/davidortinau/maui-skills/maui-hot-reload-diagnostics)