SuperAPI AI 工具集

maui-hot-reload-diagnostics

前端与建站

查看项目

更新于 10-15 20:34

技能介绍

用途:系统性诊断 .NET MAUI 应用的热重载(Hot Reload)失败问题,区分 XAML 热重载与 C# 热重载,覆盖 XAML、MauiReactor、C# Markup、Blazor Hybrid 四种 UI 方式。

主要能力:提供快速诊断清单(确认调试配置、F5 附加调试器、保存文件并重新触发代码路径、查看“Hot Reload”输出窗口);检查 .cs 文件必须为 UTF-8 with BOM 编码,可用 file -I *.cs 查看、用 find 与 od 找出无 BOM 文件、用 sed -i '1s/^(\xef\xbb\xbf)?/\xef\xbb\xbf/' file.cs 修复,或在 VS Code 中以 UTF-8 with BOM 重新保存。汇总常见问题:保存后无反应、Unsupported edit / Rude edit、iOS 上 XAML 不生效(链接器设 Don't Link、配置名必须为 Debug、勿用 XamlCompilationOptions.Skip)、改动生效但 UI 不更新。

框架要点:MauiReactor v3+ 需在 .csproj 中用 RuntimeHostConfigurationOption 开启 MauiReactor.HotReload,而非调用 EnableMauiReactorHotReload();C# Markup 需将 UI 构建抽到 Build() 方法,并实现 ICommunityToolkitHotReloadHandler,且在 MauiProgram.cs 调用 .UseMauiCommunityToolkitMarkup();Blazor Hybrid 新增组件、修改 @inject、静态资源、Program.cs 或 MauiProgram.cs 需重启,Razor 标记、代码块、CSS、组件参数通常无需重启。

限制:部分改动必然需要重启,如增删方法/字段/属性、改方法签名、改静态构造函数、泛型改动。建议先查看 Hot Reload 输出窗口;可启用详细日志、使用 dotnet build -bl:build.binlog 辅助排查;报告问题时附 dotnet --info、workload 列表、二进制日志与 Hot Reload 输出。