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

Ubuntu下AWS Mock Lambda与VS Code查找.NET运行时路径不一致问题

问题描述

我在Ubuntu系统下用VS Code开发AWS Lambda函数,通过AWS Mock Lambda工具调试。执行dotnet --info得到以下输出:

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 3.1.32 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.32 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.14 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

项目基于.NET 6.0,VS Code能正常在/usr/share/dotnet/shared/Microsoft.NETCore.App路径找到对应运行时,多次用./dotnet-install.sh重装.NET 6,运行时始终安装在此路径。但AWS Mock Lambda工具能基于.NET 6正常构建代码,加载时却抛出错误:

The framework 'Microsoft.AspNetCore.App', version '6.0.0' was not found.
  - The following frameworks were found:
      3.1.32 at [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]

VS Code可获取正确运行时,但Lambda工具仅在/usr/share/dotnet/shared/Microsoft.AspNetCore.App路径查找。若删除该路径下的运行时,工具会提示找不到任何运行时。想知道是否有办法让Lambda工具查找正确路径,或是将.NET 6安装到工具指定的路径?

我的VS Code中launch.json配置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Job Worker",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "dotnet-lambda-test-tool-6.0",
            "args": [],
            "cwd": "${workspaceFolder}/JobWorker",
            "console": "internalConsole",
            "stopAtEntry": false
        },
    ]
}
解决方案

1. 安装.NET 6的ASP.NET Core运行时

AWS Mock Lambda工具(dotnet-lambda-test-tool-6.0)依赖ASP.NET Core运行时,当前仅安装了.NET Core Runtime(Microsoft.NETCore.App),缺少对应版本的ASP.NET Core Runtime。执行以下命令安装:

sudo apt-get update && sudo apt-get install aspnetcore-runtime-6.0

安装完成后,/usr/share/dotnet/shared/Microsoft.AspNetCore.App路径下会出现6.0.x版本的运行时,工具即可找到匹配框架。

2. 在launch.json中指定运行时环境变量

修改launch.json配置,添加环境变量强制工具使用指定的.NET 6运行时路径:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Job Worker",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "dotnet-lambda-test-tool-6.0",
            "args": [],
            "cwd": "${workspaceFolder}/JobWorker",
            "console": "internalConsole",
            "stopAtEntry": false,
            "env": {
                "DOTNET_ROOT": "/usr/share/dotnet",
                "DOTNET_MULTILEVEL_LOOKUP": "0"
            }
        }
    ]
}

DOTNET_MULTILEVEL_LOOKUP=0会让.NET仅从指定的DOTNET_ROOT路径查找运行时,避免不同版本路径的混淆。

3. 调整dotnet-install.sh的安装参数

若使用dotnet-install.sh安装ASP.NET Core 6.0运行时,添加--runtime aspnetcore参数,直接将其安装到工具指定路径:

./dotnet-install.sh --version 6.0.14 --runtime aspnetcore --install-dir /usr/share/dotnet

内容的提问来源于stack exchange,提问作者J.Cart

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:07:51