AWS Lambda无法部署.NET6应用:找不到.NET6 SDK问题求助
检查部署环境的.NET SDK版本
报错核心是部署环境找不到.NET 6的引用程序集,需确认部署所用构建环境(本地CLI、CI/CD管道等)是否完整安装了.NET 6 SDK(包含Targeting Pack)。可执行dotnet --list-sdks命令查看已安装SDK版本,确认存在6.x系列版本。验证项目文件的目标框架设置
打开项目的.csproj文件,确认<TargetFramework>节点设置为net6.0(而非net6.0-windows等特定平台版本,AWS Lambda需通用目标框架)。同时检查是否存在<RuntimeIdentifier>设置,Lambda通常无需指定特定运行时标识,多余设置可能引发构建异常。调整global.json的SDK版本范围
当前global.json固定了6.0.0版本,若本地安装的是6.0.x更高补丁版本(如6.0.417),固定版本会导致构建匹配失败。可改为范围格式:{ "sdk": { "version": "6.0", "rollForward": "latestMinor" } }这样会自动使用已安装的最新6.x版本SDK,避免版本不匹配问题。
清理本地构建缓存
部署前执行dotnet clean和dotnet restore命令,清除旧的.NET Core 3.1相关缓存文件,确保构建完全依赖.NET 6程序集。检查AWS Lambda函数的运行时配置
登录AWS控制台,确认目标Lambda函数的运行时已设置为.NET 6,而非原有的.NET Core 3.1。运行时未更新的话,不仅部署可能触发错误,后续运行也会异常。尝试显式指定SDK版本部署
若用AWS CLI部署,可在打包命令前确保环境切换到.NET 6,或显式指定使用的SDK版本,保证dotnet publish命令基于正确的.NET 6环境执行。
内容的提问来源于stack exchange,提问作者Lawal

