You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI Android端部署并读取文件失败求助

.NET MAUI Android 读取打包资源文件的正确方案

核心问题分析

你之前的操作存在两个关键错误:

  • 混淆了应用包内资源和应用私有数据目录:FileSystem.Current.AppDataDirectory是应用运行时可读写的私有目录,打包的资源不会自动复制到这里,需要手动复制或者直接从包内读取流。
  • 资源文件的放置位置与生成操作配置不匹配,导致资源未被正确打包进APK。

一、正确部署并读取Excel文件(OpenXml方案)

步骤1:统一资源放置位置

不要在Platforms/Android/Resources下单独放文件,直接把Info.xlsx放到项目根目录的Resources/Raw文件夹下(如果没有Raw文件夹就新建)。

步骤2:配置生成操作

右键文件→属性,设置:

  • 生成操作:MauiAsset
  • 复制到输出目录:如果较新则复制

或者直接在.csproj里添加(如果没自动生成):

<ItemGroup>
  <MauiAsset Include="Resources\Raw\Info.xlsx" />
</ItemGroup>

步骤3:正确读取文件

因为OpenXml需要文件路径,而包内资源是只读的,所以需要先把资源流复制到AppDataDirectory再读取:

// 1. 从包内获取资源流
using Stream assetStream = await FileSystem.Current.OpenAppPackageFileAsync("Info.xlsx");
// 2. 复制到应用可读写目录
string targetPath = Path.Combine(FileSystem.Current.AppDataDirectory, "Info.xlsx");
using FileStream fileStream = new FileStream(targetPath, FileMode.Create, FileAccess.Write);
await assetStream.CopyToAsync(fileStream);

// 3. 用OpenXml读取目标路径的文件
using (SpreadsheetDocument spreadSheetDocument = SpreadsheetDocument.Open(targetPath, false))
{
    // 你的Excel处理逻辑
}

二、正确读取文本文件

步骤1:简化资源放置

只保留项目根目录Resources/Raw下的AboutAssets.txt,删除Platforms/Android/Resources/Raw下的副本,避免打包冲突。

步骤2:确认生成操作

确保文件的生成操作是MauiAsset,复制到输出目录设置为如果较新则复制。

步骤3:修正读取代码的路径

调用OpenAppPackageFileAsync时,直接传入文件名即可(因为Resources/Raw下的MauiAsset会被打包到根路径),不需要拼接Resources/Raw:

public async Task<string> ReadTextFile(string fileName)
{
    using Stream fileStream = await FileSystem.Current.OpenAppPackageFileAsync(fileName);
    using StreamReader reader = new StreamReader(fileStream);
    return await reader.ReadToEndAsync();
}

// 调用时直接传文件名
string content = await ReadTextFile("AboutAssets.txt");

如果还是读取为空,检查:

  • 文件内容是否为空
  • 文件名是否大小写一致(Android文件系统区分大小写)
  • 清理项目并重新生成(删除bin/obj目录后Rebuild)

额外注意事项

  • Android的Assets目录在MAUI里不需要手动在Platforms下创建,MAUI的Resources/Raw会统一处理跨平台资源打包。
  • 如果需要频繁读取资源文件,建议只复制一次到AppDataDirectory,避免每次启动都复制。

内容的提问来源于stack exchange,提问作者user20081580

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:55:13