Azure持续交付部署问题:多项目解决方案仅需部署指定项目
解决Azure App Service部署多项目ASP.NET解决方案时仅部署指定项目的问题
我来帮你搞定这个部署问题!你已经尝试在App Service的应用设置里配置PROJECT = BLAH.API/BLAH.API.csproj,但还是部署了所有项目,这大概率是因为这个设置的作用场景和你的部署流程不匹配,我们一步步来调整:
核心问题分析
PROJECT应用设置主要是给Azure App Service的内置构建功能(比如直接连接GitHub仓库自动构建部署)或者本地直接发布用的,它的作用是告诉App Service在多个项目里选择哪个来启动运行。但如果你的部署流程是先通过CI/CD工具(比如Azure DevOps、GitHub Actions)提前构建了所有项目的发布包,再上传到App Service,那这个设置不会阻止所有包被上传——因为上传阶段已经把所有文件都传上去了。
具体解决方案
1. 调整构建阶段,仅生成目标项目的发布包
如果用的是命令行构建(比如dotnet CLI),修改构建命令为只针对BLAH.API项目:
dotnet publish BLAH.API/BLAH.API.csproj -c Release -o ./publish
这样构建完成后,只会生成BLAH.API的发布文件,后续上传时自然只有这一个项目的内容。
2. 配置CI/CD部署任务,仅上传目标项目包
- Azure DevOps:在
Deploy Azure App Service任务中,把「Package or folder」的路径设置为$(Build.ArtifactStagingDirectory)/BLAH.API.zip(或者你构建时生成的目标包路径),而不是整个drop文件夹。 - GitHub Actions:在
azure/webapps-deploy@v2任务里,指定package路径为目标项目的zip:- name: Deploy to Azure App Service uses: azure/webapps-deploy@v2 with: app-name: your-app-service-name publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }} package: '**/BLAH.API.zip'
3. 如果你用Visual Studio直接发布
确保在发布向导里选择的是BLAH.API项目,而不是整个解决方案。在「发布」窗口的顶部,确认项目选择框里显示的是BLAH.API,再执行发布操作。
4. 验证PROJECT设置的有效性(可选)
如果是用App Service的内置构建(比如直接连接GitHub仓库),确认PROJECT路径是否正确:
- 路径是相对于解决方案根目录的,比如如果你的解决方案文件和
BLAH.API文件夹在同一层级,BLAH.API/BLAH.API.csproj是正确的;如果有嵌套文件夹,要调整路径。 - 可以在部署日志里搜索
PROJECT关键字,看App Service是否识别到了这个设置,是否尝试只构建目标项目。
按照上面的步骤调整后,就能只部署你需要的BLAH.API项目了!
内容的提问来源于stack exchange,提问作者Dean
相关产品推荐
相关产品推荐

