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

在Raspbian系统上部署.NET项目遇启动文件缺失问题

解决.NET自包含发布缺失控制台入口DLL的问题

先确认发布的目标项目

  • 务必选中控制台应用项目而非类库项目执行发布操作。类库项目发布只会生成类库DLL,根本不会产出入口程序集。如果用Visual Studio,就在解决方案资源管理器里右键点控制台应用项目(别点解决方案或类库)选“发布”;用命令行的话,先切换到控制台项目的根目录(就是有.csproj文件的文件夹)再执行发布命令。

修正CLI发布命令(如果用命令行发布)

要是你用dotnet publish命令,参数必须准确:

  • 先切到控制台项目目录:cd /path/to/Project.POC.Console
  • 执行正确的自包含发布命令:
    dotnet publish -c Release -r linux-arm --self-contained true
    
    注:linux-arm适配树莓派3 B+的架构,也可以试试linux-arm64,取决于你装的.NET版本和系统位数;--self-contained true会打包运行时,就算设备没装.NET也能跑,不过你已经装了,这么做也没问题。

检查控制台项目的.csproj配置

打开控制台应用的.csproj文件,确认这几点:

  • 项目类型是<OutputType>Exe</OutputType>,不能是<OutputType>Library</OutputType>
  • 有正确的<TargetFramework>配置(比如net6.0、net7.0),且和你在树莓派上装的.NET版本兼容
  • 如果自定义过发布配置,别把输出路径误设成了类库的目录

验证发布结果

发布完成后,去控制台项目的bin/Release/<TargetFramework>/linux-arm/publish目录(或你指定的发布路径)看看,应该有这些文件:

  • 控制台应用的主DLL(比如Project.POC.Console.dll)
  • 自包含运行时的相关文件(像dotnet可执行文件、系统依赖库之类的)
  • 你那两个自定义类库的DLL

树莓派上的运行步骤

把整个发布目录复制到Raspbian设备后,有两种运行方式:

  1. 因为你已经装了.NET,用框架依赖模式直接跑:
    dotnet Project.POC.Console.dll
    
  2. 自包含模式下,直接执行生成的可执行文件(不用dotnet命令):
    chmod +x Project.POC.Console
    ./Project.POC.Console
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:09:54