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

如何编译可在Linux(CentOS)环境运行的C#项目?

解决C#项目在CentOS上无法通过Mono运行的问题

1. 先明确项目的目标框架

查看项目的.csproj文件里的TargetFramework节点:

cat YourProject.csproj | grep TargetFramework

如果是net6.0/net7.0这类.NET Core/5+系列框架,Mono对其支持有限,不需要用Mono,直接用.NET SDK处理即可。

2. .NET Core/5+项目的跨平台处理

  • 编译时指定Linux运行时:
    dotnet build --configuration Release --runtime linux-x64
    
  • 将编译后的文件复制到CentOS,进入输出目录后直接运行:
    ./YourProject.exe
    

3. 若项目基于.NET Framework(需用Mono)

如果TargetFramework是net48这类.NET Framework版本:

  • 在Windows上用Visual Studio或msbuild编译,确保生成兼容Mono的纯CIL程序集:
    msbuild /p:TargetFramework=net48 /p:Configuration=Release
    
  • 将生成的exe及依赖库复制到CentOS,用Mono运行:
    mono YourProject.exe
    

4. 排查单文件发布问题

如果之前用了单文件发布命令(比如dotnet publish -r linux-x64 -p:PublishSingleFile=true),生成的exe是包含运行时的二进制文件,不是纯CIL格式,Mono无法识别,需取消单文件发布,或直接用dotnet命令运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:15:28