.NET MAUI:JSON文件iOS Debug可访问,Mac Catalyst Debug无法找到
跨平台通用解决方案
不要手动拼接文件路径,直接使用MAUI提供的跨平台资源访问API读取ClientSecrets.json,自动适配各平台的资源位置差异,无需做平台判断。
步骤1:确认项目配置
确保你的.csproj文件中MauiAsset项的LogicalName设置正确,让资源在所有平台的App包中处于统一的可访问路径:
<MauiAsset Include="Resources\Raw\ClientSecrets.json" LogicalName="ClientSecrets.json" CopyToOutputDirectory="PreserveNewest" />
LogicalName指定了资源在App包中的逻辑路径,这里设为根目录下的ClientSecrets.json,保证各平台访问路径一致。
步骤2:使用跨平台API读取文件
替换原来的FileStream代码,改用FileSystem.OpenAppPackageFileAsync方法读取资源:
using Microsoft.Maui.Storage; using System.IO; using System.Threading.Tasks; // 读取ClientSecrets.json的方法 public async Task<string> GetClientSecretsAsync() { // 自动定位到App包中的资源文件 using var stream = await FileSystem.OpenAppPackageFileAsync("ClientSecrets.json"); using var reader = new StreamReader(stream); return await reader.ReadToEndAsync(); }
方案说明
FileSystem.OpenAppPackageFileAsync是MAUI封装的原生API,会自动处理iOS、Mac Catalyst等不同平台的App包结构差异,不需要你手动拼接Contents/这类平台特定路径,从根本上避免了平台适配问题。
内容的提问来源于stack exchange,提问作者Kurt Roembke
相关产品推荐
相关产品推荐

