C#:迁移到 NET 5 后 dotnet 构建期间内存不足
C#: Out of memory during dotnet build after migrate to NET 5
我们使用 App Buddy
作为我们的 CI/CD 系统。今天我们将项目从 ASP.NET Core 3.1
迁移到 NET 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
可以使用的内存?
经过将近一周的团队搜索。我们找到了一种减少构建期间 ram 消耗的方法。我们通过添加 -p:RunAnalyzers=false
来解决它,它帮助很大!其他解决方案无效。
dotnet build "project" -p:RunAnalyzers=false
我们也可以在 csproj 中禁用它(而不是在 VS 中的 运行 分析器,但我认为这不是个好主意)。
它不是 100% 解决问题,但它允许我们 运行 构建,所以当我找到限制 msbuild 的 ram 使用的解决方案时,我不会 运行 分析器
我们使用 App Buddy
作为我们的 CI/CD 系统。今天我们将项目从 ASP.NET Core 3.1
迁移到 NET 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
可以使用的内存?
经过将近一周的团队搜索。我们找到了一种减少构建期间 ram 消耗的方法。我们通过添加 -p:RunAnalyzers=false
来解决它,它帮助很大!其他解决方案无效。
dotnet build "project" -p:RunAnalyzers=false
我们也可以在 csproj 中禁用它(而不是在 VS 中的 运行 分析器,但我认为这不是个好主意)。
它不是 100% 解决问题,但它允许我们 运行 构建,所以当我找到限制 msbuild 的 ram 使用的解决方案时,我不会 运行 分析器