AWS CodeBuild报错CLIENT_ERROR:未找到匹配构件路径,.NET Core构建异常
解决AWS CodeBuild找不到.NET Core发布构件的问题
我一眼就看出问题出在构件路径的匹配错误上,咱们一步步拆解清楚:
核心问题:路径名称不匹配+路径位置错误
你的dotnet publish命令指定的输出目录是./build-output(注意是短横线-),但在buildspec的artifacts部分,你写的是MyApp/build_output/**/*(这里用了下划线_)——这俩名字完全不一样,CodeBuild当然找不到对应的文件!
另外从构建日志里能明确看到,publish的实际输出路径是:
Faraday.Waka3d -> C:\codebuild\tmp\output\src274723887\src\git-codecommit.us-east-2.amazonaws.com\v1\repos\MyApp\build-output\
也就是说build-output是直接在你的仓库根目录下,而不是MyApp子目录里,你写的MyApp/build_output路径本身就不符合实际位置。
修正后的buildspec配置
把artifacts里的路径改成和publish输出完全一致的名称和位置:
version: 0.2 phases: pre_build: commands: - echo "PRE-BUILD:::phase" build: commands: - echo "BUILD:::phase" - dotnet publish -c Debug -o ./build-output MyApp/MyApp.csproj # 可以加一行命令验证输出目录,方便后续排查 - dir build-output artifacts: files: - build-output/**/*
额外排查技巧
如果以后再遇到类似的构件找不到问题,建议在build阶段末尾加一个查看目录的命令(Windows用dir,Linux/macOS用ls -la),这样能直观看到生成的文件到底在哪个位置,避免靠猜测写路径。
内容的提问来源于stack exchange,提问作者GhostBob
相关产品推荐
相关产品推荐

