使用GitHub Actions部署.NET API到Azure App Service遇路径错误求助
GitHub Actions 发布.NET API到Azure App Service路径不存在问题排查与解决
常见原因及对应解决办法
1. 项目路径配置错误
- 确认Workflow里
dotnet build、dotnet publish的工作目录和项目实际位置匹配。如果API项目在仓库子目录(比如src/MyDotNetApi),必须用working-directory指定正确路径:- name: 构建并发布项目 run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/publish working-directory: ./src/MyDotNetApi - 保证
publish指定的输出目录,和后续Azure部署步骤里的package路径完全一致,注意Linux环境下路径区分大小写。
2. 发布输出目录未正确生成
- 检查
dotnet publish命令是否遗漏-o参数,这个参数用来指定输出目录,没加的话默认输出到项目目录下的bin/Release/netX.X/publish,后续部署步骤没对应这个路径就会报错。 - 可以在publish步骤后加目录检查命令,确认输出是否正常:
正常情况下能看到- name: 检查发布输出目录 run: ls -la ${{env.DOTNET_ROOT}}/publishweb.config、bin文件夹以及项目dll文件。
3. 环境变量或变量引用错误
- 如果Workflow里用了自定义环境变量(比如
${{env.PUBLISH_PATH}}),要确保在开头的env区块正确定义,避免引用未定义变量导致路径无效:env: PUBLISH_PATH: ./publish-output - 注意变量的拼写和大小写,比如Linux runner上
PUBLISH_PATH和publish_path会被识别为不同变量。
4. 仓库结构与预期不符
- 确认GitHub仓库的目录结构和本地一致,不要把项目目录加到
.gitignore里导致GitHub上无此目录,也不要漏提交项目文件。 - 如果是单仓库多项目,确保部署步骤指向的是正确的
.csproj文件所在路径,别选错项目。
5. Azure部署步骤路径错误
- 使用
azure/webapps-deploy@v2动作时,package参数要准确指向publish生成的目录或提前打包好的压缩包。如果是目录直接写路径即可,不要多加多余层级:- name: 部署到Azure App Service uses: azure/webapps-deploy@v2 with: app-name: '你的应用名称' slot-name: 'production' package: ${{env.DOTNET_ROOT}}/publish
内容的提问来源于stack exchange,提问作者Joshua
相关产品推荐
相关产品推荐

