如何通过GitHub Action部署Azure WebApp时指定ASP.NET Core多项目的目标项目
多项目解决方案下通过GitHub Action部署指定ASP.NET Core项目到Azure
针对你的多项目解决方案场景,只需在GitHub Action的构建、发布步骤中明确指定要部署的前端项目文件路径,即可自动包含其依赖的类库(如Domain),同时跳过其他项目(如后台管理项目)。以下是具体实现步骤和示例:
1. 调整构建(Build)步骤
将原本针对整个解决方案的dotnet build命令,改为指向前端项目的.csproj文件,这样只会构建该项目及其依赖项:
- name: Build with dotnet run: dotnet build ./你的前端项目路径/FrontendProject.csproj --configuration Release
2. 调整发布(Publish)步骤
同样,发布阶段也要指定前端项目文件,确保只打包目标项目及其依赖:
- name: Publish with dotnet run: dotnet publish ./你的前端项目路径/FrontendProject.csproj --configuration Release --output ${{ env.DOTNET_ROOT }}/publish-output
3. 配置Azure部署步骤
使用azure/webapps-deploy动作时,指定发布输出的目录或zip包即可:
- name: Deploy to Azure Web App uses: azure/webapps-deploy@v2 with: app-name: '你的Azure WebApp名称' publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }} package: ${{ env.DOTNET_ROOT }}/publish-output
完整的GitHub Action示例
name: Deploy Frontend to Azure on: push: branches: [ main ] jobs: build-and-deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup .NET Core uses: actions/setup-dotnet@v4 with: dotnet-version: '6.0.x' - name: Restore dependencies run: dotnet restore ./你的前端项目路径/FrontendProject.csproj - name: Build run: dotnet build ./你的前端项目路径/FrontendProject.csproj --configuration Release --no-restore - name: Publish run: dotnet publish ./你的前端项目路径/FrontendProject.csproj --configuration Release --no-build --output ${{ env.DOTNET_ROOT }}/publish-output - name: Deploy to Azure Web App uses: azure/webapps-deploy@v2 with: app-name: '你的WebApp名称' publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }} package: ${{ env.DOTNET_ROOT }}/publish-output
关键说明
- 替换示例中的
你的前端项目路径/FrontendProject.csproj为实际项目相对路径(比如src/Frontend/Frontend.csproj) - 依赖的Domain类库会被自动包含在发布包中,无需额外配置
- 后台管理项目因未被指定构建/发布,不会被部署到Azure
内容的提问来源于stack exchange,提问作者SandroRiz
相关产品推荐
相关产品推荐

