在树莓派3 Model B上部署.Net Core 2.0框架依赖应用遇阻求助
解决Raspbian Stretch上.NET Core框架依赖模式运行问题
嘿,我之前在树莓派的ARM环境折腾.NET Core的时候也碰到过类似的问题,给你几个一步步排查的方案,应该能解决:
1. 先检查项目的框架版本配置
你的应用编译时可能指定了依赖Microsoft.NETCore.App 2.0.0,但你装的是2.0.5运行时——虽然小版本理论上兼容,但ARM环境有时候需要明确对齐版本。
- 打开项目的
.csproj文件,确认<TargetFramework>是netcoreapp2.0 - 加上
<RuntimeFrameworkVersion>节点,指定成你安装的2.0.5,比如:
<PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> <RuntimeFrameworkVersion>2.0.5</RuntimeFrameworkVersion> </PropertyGroup>
然后重新发布框架依赖包:dotnet publish -c Release -f netcoreapp2.0
2. 验证运行时是否正确安装注册
在树莓派终端跑这个命令,看看运行时列表里有没有2.0.5:
dotnet --list-runtimes
正常应该显示Microsoft.NETCore.App 2.0.5 [xxx]的条目。如果没看到,说明安装没成功,建议重新下载ARM32架构的2.0.5运行时安装包,从头再来一遍安装步骤。
3. 手动设置环境变量(ARM环境常见坑)
有时候树莓派的环境变量没配置对,导致.NET Core找不到运行时路径。你可以临时设置试试:
export DOTNET_ROOT=/usr/share/dotnet export PATH=$PATH:$DOTNET_ROOT
设置完再运行你的应用:dotnet YourApp.dll
4. 检查Microsoft.CSharp.dll的权限
你说能看到这个文件,但框架依赖模式下可能是权限不够导致加载失败。跑这个命令看权限:
ls -l /usr/share/dotnet/shared/Microsoft.NETCore.App/2.0.5/Microsoft.CSharp.dll
如果当前用户没有读取权限,执行:
sudo chmod +r /usr/share/dotnet/shared/Microsoft.NETCore.App/2.0.5/Microsoft.CSharp.dll
5. 确认你装的是对应ARM架构的运行时
树莓派是ARM32架构,千万别下成x86或x64版本的运行时了——这是新手常犯的错,重新下载时一定要选arm架构的安装包。
最后补充
其实.NET Core 2.0是支持树莓派的框架依赖模式的,官方文档没明确提可能是因为早期版本有坑,但2.0.5已经修复了大部分问题。如果以上步骤都没用,试试清理项目的bin和obj目录,重新编译发布,或者彻底卸载当前运行后再重装一次。
内容的提问来源于stack exchange,提问作者Tux
相关产品推荐
相关产品推荐

