用途:指导 .NET MAUI 应用连接由 .NET Aspire AppHost 编排的后端服务,说明两端差异与本地联调方式。
主要能力与要点:MAUI 应用不由 AppHost 编排,运行于设备或模拟器并通过网络连接,因此不能使用 Aspire 服务发现 URI(如 https+http://apiservice),不能通过 .WithReference() 加入 AppHost,也不能使用 AddServiceDefaults()(非 ASP.NET Core 宿主)。必须使用真实可访问的端点,并使用 MSAL.NET 公共客户端,而非 OIDC 机密客户端。
必要用法:AppHost 中只添加后端服务,不要添加 MAUI 项目(其不实现 IServiceMetadata)。客户端 BaseAddress 使用真实地址,例如 https://localhost:7001。Android 模拟器需用 10.0.2.2 访问宿主机回环,可结合 #if ANDROID && DEBUG 条件编译。Android 还可通过 HttpClientHandler 的 ServerCertificateCustomValidationCallback 绕过开发证书校验,但仅限本地开发。
适用场景与限制:用于 MAUI 与 Aspire 后端本地或设备联调;调试 API 可用 Aspire 仪表板 https://localhost:17178。iOS 模拟器等平台 localhost 与开发证书可用,Android 需额外配置。认证在 MAUI 层用 MSAL.NET 处理,Blazor Hybrid 亦然。Aspire 要求 .NET 10+,MAUI 项目需匹配 net10.0-* TFM。遥测需用 System.Diagnostics 单独配置 OpenTelemetry。证书绕过与 HTTP 配置不可用于生产。其余细节暂未提供。