MAUI引用外部程序集JSON链接文件时抛出FileNotFoundException
MAUI项目中链接引用的appsettings.json文件找不到的解决方法
问题核心在于链接文件的输出复制配置缺失:直接添加文件到MAUI项目时,Visual Studio会自动为文件添加CopyToOutputDirectory属性,但通过链接方式添加的文件不会默认配置这个属性,导致运行时文件没有被复制到可访问的输出目录,从而抛出FileNotFoundException。
以下是具体解决步骤:
修改MAUI项目的
.csproj文件,手动添加链接文件的复制配置
在项目文件的<Project>根节点内插入以下配置块(注意根据你的类库实际位置调整相对路径):<ItemGroup> <MauiAsset Include="..\MyLibrary\appsettings.json" Link="Resources\raw\appsettings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </MauiAsset> </ItemGroup>该配置会确保链接的
appsettings.json被复制到输出目录,且始终保留最新版本。确认文件读取逻辑的正确性
建议使用MAUI官方推荐的资源加载方法读取包内文件,避免路径适配问题:using var stream = await FileSystem.OpenAppPackageFileAsync("Resources/raw/appsettings.json"); using var reader = new StreamReader(stream); var configContent = await reader.ReadToEndAsync();清理并重新生成解决方案
删除MAUI项目的bin和obj目录,然后重新生成整个解决方案,清除可能存在的编译缓存。
内容的提问来源于stack exchange,提问作者D G
相关产品推荐
相关产品推荐

