Ubuntu 24.04运行.NET 8 Web/Blazor应用时触发System.IO.FileLoadException
解决树莓派5 Ubuntu 24.04下Blazor应用启动FileLoadException问题
可能的原因及解决步骤
1. 确认发布架构与树莓派5匹配
树莓派5为ARM64架构,若发布时选择x64等不兼容架构会导致文件加载失败:
- 发布时指定目标架构:
或在Visual Studio发布配置中,将目标运行时设置为dotnet publish -c Release -r linux-arm64 --self-contained falselinux-arm64。
2. 检查发布文件完整性
- 确认发布目录下存在
BlazorApp.dll及所有依赖.dll文件,无缺失 - 执行命令检查依赖完整性:
dotnet list /my/path/to/publish package
3. 修复权限配置(避免过度开放)
过度设置777权限可能触发安全机制拦截,建议调整为合理权限并确保属主正确:
sudo chown -R $USER:$USER /my/path/to/publish sudo chmod -R 755 /my/path/to/publish
4. 保证.NET版本一致
确保本地开发用的SDK版本与树莓派上安装的版本匹配:
- 运行
dotnet --version查看当前SDK版本,发布时使用同版本打包。
5. 尝试自包含发布模式
将所有依赖打包进发布包,避免运行时依赖缺失:
dotnet publish -c Release -r linux-arm64 --self-contained true
发布完成后直接运行生成的可执行文件:
./BlazorApp
6. 获取详细加载日志
设置环境变量生成加载追踪日志,定位具体失败环节:
export COREHOST_TRACE=1 export COREHOST_TRACEFILE=dotnet_load.log dotnet BlazorApp.dll
查看生成的dotnet_load.log文件,获取文件加载失败的具体细节。
内容的提问来源于stack exchange,提问作者max
相关产品推荐
相关产品推荐

