在AWS CodeBuild的Ubuntu 22.04中安装.NET 7后仍显示.NET 6的问题
在AWS CodeBuild中安装.NET 7 SDK后版本仍显示.NET 6的问题
我尝试在AWS CodeBuild环境中构建.NET 7项目,已通过以下命令安装.NET 7 SDK:
sudo apt-get update && sudo apt-get install -y dotnet-sdk-7.0
但执行dotnet --version命令时,输出结果仍然是.NET 6版本。相关日志及版本查询截图如下:
- 安装过程日志1:

- 安装过程日志2:

- 版本查询结果截图:

解决方案
1. 调整环境变量优先级
AWS CodeBuild默认镜像通常预装了.NET 6,且其路径在PATH中的优先级高于手动安装的.NET 7。先查看已安装的所有.NET SDK:
dotnet --list-sdks
确认.NET 7的安装路径(一般为/usr/share/dotnet/sdk/7.0.x/),然后将该路径加入PATH并设为高优先级:
export PATH="/usr/share/dotnet:$PATH"
也可以直接在CodeBuild的buildspec.yml中添加环境变量配置:
env: shell: bash variables: PATH: "/usr/share/dotnet:$PATH"
2. 使用官方预装有.NET 7的CodeBuild镜像
无需手动安装,直接选择AWS提供的包含.NET 7的标准镜像:
- 基于Amazon Linux 2:
aws/codebuild/amazonlinux2-x86_64-standard:5.0 - 基于Ubuntu:
aws/codebuild/standard:7.0
在CodeBuild项目的"环境配置"中更换镜像即可。
3. 通过global.json强制指定SDK版本
在项目根目录创建global.json文件,明确指定使用.NET 7:
{ "sdk": { "version": "7.0.0" } }
后续执行dotnet命令时会自动选用该版本,不受系统默认版本影响。
4. 验证安装有效性
如果不确定.NET 7是否安装成功,可执行以下命令检查安装路径:
ls /usr/share/dotnet/sdk/
若能看到以7.0开头的目录,说明安装完成,只需调整环境变量即可。
内容的提问来源于stack exchange,提问作者Black Kite
相关产品推荐
相关产品推荐

