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

AWS Lambda(.NET 6)项目上传后因TypeLoadException无法启动

解决.NET 6 AWS Lambda部署后启动失败的TypeLoadException问题

原因及解决办法:

1. 目标运行时不匹配

AWS Lambda默认使用Linux环境,本地编译的运行时若与平台不一致会引发异常。

  • 修改项目文件(.csproj),指定目标运行时为linux-x64:
    <PropertyGroup>
      <TargetFramework>net6.0</TargetFramework>
      <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
      <PublishReadyToRun>true</PublishReadyToRun>
      <SelfContained>true</SelfContained>
    </PropertyGroup>
    
  • 发布时明确指定运行时:
    dotnet publish -c Release -r linux-x64
    

2. 依赖项版本冲突或缺失

  • 检查System.Runtime.InteropServices包版本,确保为6.0.x的兼容版本,避免版本过高或过低。
  • 清理本地NuGet缓存后重新恢复依赖:
    dotnet nuget locals all --clear
    dotnet restore
    

3. 发布配置问题

  • 如果启用了PublishSingleFile选项,可暂时关闭该配置后重新发布测试,部分场景下该选项会引发兼容问题。
  • 确保发布时设置SelfContained=true,将所有.NET运行时组件打包在一起,避免AWS环境缺少必要文件。

4. Lambda控制台运行时配置检查

登录AWS Lambda控制台,确认函数的运行时设置为.NET 6,不要误选其他版本(如.NET Core 3.1或.NET 7)。

5. 代码引用过时类型

System.Runtime.InteropServices.RuntimeEnvironment在.NET 6部分环境中已被标记为过时或移除,检查代码中是否直接调用了该类型的方法。若有,替换为.NET 6推荐的替代API:

  • 例如获取运行时目录,可将RuntimeEnvironment.GetRuntimeDirectory()替换为AppContext.BaseDirectory。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 14:56:00