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

GitHub Actions部署Azure App Service报错:未找到指定包

解决GitHub Actions部署.NET Core应用至Azure App Service(非根目录项目)的路径问题

问题根源

核心矛盾是发布产物的路径与部署步骤的路径不匹配:

  • 在MYAPP目录下执行dotnet publish -o ./published时,发布文件会生成在MYAPP/published目录(相对于仓库根目录)
  • 部署步骤azure/webapps-deploy@v2默认在仓库根目录执行,它会去根目录查找./published,自然找不到,触发报错
  • 移除package参数后,部署工具默认上传了整个仓库内容,而非编译好的发布包,Azure App Service无法定位正确的应用入口,因此出现404

修复方案

方案1:修正发布路径为根目录可访问的路径

修改环境变量和发布命令,让部署步骤能直接定位到发布产物:

name: Build and deploy ASP.Net Core app to Azure Web App - myappdeploy

on:
  push:
    branches:
      - main
  workflow_dispatch:

env:
  # 改为相对于根目录的明确路径
  AZURE_WEBAPP_PACKAGE_PATH: './MYAPP/published'   

jobs:
  build:
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v2

      - name: Set up .NET Core
        uses: actions/setup-dotnet@v1
        with:
          dotnet-version: '6.0.x'
          include-prerelease: true
          
      - name: dotnet build and publish
        working-directory: ./MYAPP
        run: |
          dotnet restore
          dotnet build --configuration Release
          # 相对于当前工作目录(MYAPP)生成published文件夹
          dotnet publish -c Release -o published
          
      - name: 'Run Azure webapp deploy action using publish profile credentials'
        uses: azure/webapps-deploy@v2
        with: 
            app-name: 'myappdeploy'
            publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_7894EB5E4C174F72A5EDE9C64B658907 }}
            package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}

方案2:给部署步骤指定工作目录

如果不想修改发布路径,可让部署步骤在MYAPP目录下执行,直接读取该目录下的published文件夹:

# ... 其他步骤保持不变 ...
      - name: 'Run Azure webapp deploy action using publish profile credentials'
        working-directory: ./MYAPP
        uses: azure/webapps-deploy@v2
        with: 
            app-name: 'myappdeploy'
            publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_7894EB5E4C174F72A5EDE9C64B658907 }}
            package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}

原方法无效的原因

  • .deployment文件:仅在Azure App Service直接关联GitHub仓库的自动部署场景生效,GitHub Actions的azure/webapps-deploy不会读取该文件
  • Azure App Service的Project应用设置:同样针对自动部署场景,对Actions部署流程不生效

验证步骤

部署完成后,可通过Azure Portal的App Service -> 高级工具 -> Kudu -> 站点目录,确认site/wwwroot下是编译后的发布文件(而非仓库源码),若为源码则说明路径配置仍有问题。


内容的提问来源于stack exchange,提问作者leoenix

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:15:36