C#:迁移到 NET 5 后在 dotnet 构建期间内存不足

Woj*_*Rak 7 .net c# continuous-integration out-of-memory .net-5

我们使用它App Buddy作为我们的 CI/CD 系统。今天我们将项目从 迁移ASP.NET Core 3.1NET 5. 在 dotnet 构建开始消耗大量 RAM(分配大约 10-12GB)之后,我们的服务器上没有那么多内存。

dotnet build在我们的 CI/CD 服务器上Microsoft.CSharp.Core.targets(71,5): error : Process terminated. System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.

我尝试过使用-maxCpuCount:1但不起作用。是否有可能限制dotnet build可以使用的内存?

Woj*_*Rak 5

经过与团队近一周的寻找。我们找到了一种减少构建过程中内存消耗的方法。我们通过添加来解决它-p:RunAnalyzers=false,它有很大帮助!其他解决方案不起作用。

dotnet build "project" -p:RunAnalyzers=false
Run Code Online (Sandbox Code Playgroud)

我们还可以在 csproj 中禁用它(并且不在 VS 中运行分析器,但在我看来这不是一个好主意)。

它不是 100% 解决问题,但它允许我们运行构建,所以当我找到限制 msbuild ram 使用的解决方案时,我不会运行分析器