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

.NET Core 3.1 AWS Lambda加载System.Runtime.Loader 4.1.1.0错误如何解决

问题根因

这个报错和你使用自包含模式+PublishTrimmed裁剪配置的组合直接相关,具体原因如下:

  1. 运行时标识符(RID)不匹配:你csproj中配置的RuntimeIdentifier为win10-x64,本地Windows环境运行正常,但AWS Lambda的.NET Core 3.1运行环境为64位Linux,错误的RID会导致自包含打包的运行时依赖和目标环境不兼容,出现程序集加载失败的问题。
  2. 裁剪工具误删依赖:.NET Core 3.1的PublishTrimmed功能依赖静态代码分析判断要保留的依赖,System.Runtime.Loader、System.IO.Pipelines这类程序集通常是通过反射被调用,没有显式的静态代码引用,即使你手动安装了对应的NuGet包,裁剪器也会默认将其判定为无用依赖删除,导致运行时报错。

解决步骤

  • 修正运行时标识符:将csproj中的<RuntimeIdentifier>配置从win10-x64修改为linux-x64,匹配AWS Lambda的运行环境。
  • 配置裁剪器保留指定程序集:在csproj文件中添加如下配置,明确告知裁剪器不要删除这两个依赖:
<ItemGroup>
  <TrimmerRootAssembly Include="System.Runtime.Loader" />
  <TrimmerRootAssembly Include="System.IO.Pipelines" />
</ItemGroup>
  • 可选方案:如果对发布包大小没有严格要求,可以直接将PublishTrimmed设置为false,关闭裁剪功能即可直接解决依赖丢失问题,仅会增加少量发布包体积,对Lambda运行效率影响极小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:54:04