.NET MAUI读取Resources/Raw下licencia.txt文件报错求助
.NET MAUI读取Resources\Raw文件找不到的解决方法
排查与修复步骤
检查文件生成操作配置
右键licencia.txt文件 → 属性,确保:- 「生成操作」设置为
MauiAsset - 「复制到输出目录」设置为「始终复制」或「如果较新则复制」
只有标记为MauiAsset的资源才会被打包到App包中,OpenAppPackageFileAsync才能正常读取。
- 「生成操作」设置为
确认文件名大小写匹配
Android、iOS等平台对文件名大小写敏感,确保代码中使用的"licencia.txt"和实际文件名的大小写完全一致,比如不要出现文件是Licencia.txt但代码里写小写的情况。简化并规范读取代码
原代码的逐行读取逻辑冗余,且using块会自动释放资源,无需手动调用reader.Close(),修正后的代码如下:
using System.Text; namespace NautilusSMS.Pages; public partial class License : ContentPage { public License() { InitializeComponent(); } private async void License_Load(object sender, EventArgs e) { tvLicense.Text = ""; try { using Stream fileStream = await FileSystem.Current.OpenAppPackageFileAsync("licencia.txt"); using StreamReader reader = new StreamReader(fileStream); // 直接读取全部内容,简化代码逻辑 tvLicense.Text = await reader.ReadToEndAsync(); } catch (Exception ex) { await DisplayAlert("Alerta", ex.ToString(), "Cancel"); } } }
- 清理缓存重新生成
如果以上步骤都没问题,尝试清理解决方案,删除项目的bin和obj目录后重新生成,避免缓存导致资源未正确打包。
内容的提问来源于stack exchange,提问作者Rene
相关产品推荐
相关产品推荐

