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

迁移到.NET 5后执行dotnet build出现内存溢出问题如何解决

dotnet build 内存溢出问题解决方案

你之前使用的-maxCpuCount:1仅限制构建使用的CPU核心数,不会限制内存分配上限,因此对内存溢出问题没有缓解作用,可通过以下方案解决:

  • 配置.NET运行时GC堆内存硬限制
    该方案直接限制整个dotnet进程的最大内存使用量,生效范围最直接,可根据CI服务器可用内存调整限制值:
    Linux 环境下执行构建前运行命令:
    export DOTNET_GC_HEAPLIMIT=7G
    
    Windows 环境下执行构建前运行命令:
    set DOTNET_GC_HEAPLIMIT=7G
    
  • 禁用Roslyn共享编译
    .NET 5开始默认开启的共享编译机制会驻留后台进程缓存编译数据,大项目场景下极易占用超过10GB内存,构建时添加参数关闭该功能即可大幅降低内存占用:
    dotnet build /p:UseSharedCompilation=false -maxCpuCount:1
  • 关闭非必要构建组件
    1. CI环境不需要执行代码分析时,添加/p:RunAnalyzers=false参数关闭所有代码分析器,可减少30%~50%的内存开销
    2. 提前单独执行dotnet restore,构建时添加--no-restore参数跳过还原步骤,避免额外内存占用
  • 拆分构建流程
    若解决方案包含大量项目,可调整CI脚本逐个构建单个项目,替代一次性构建整个解决方案,避免同时加载全部项目元数据导致内存暴涨

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:48:04