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

Azure持续部署中如何指定.NET网站项目解决多项目匹配错误

解决Azure持续部署多项目混淆的问题

这问题我之前帮好几个开发者捋顺过——当你的解决方案里同时包含网站和Web服务等多个可部署项目时,Azure DevOps的部署任务会默认用全局路径搜索所有.zip部署包,自然就出现“匹配到多个包”的冲突了。咱们用这几个办法解决:

1. 精准指定部署包的路径

在Azure DevOps的Azure App Service Deploy任务里,找到Package or folder字段,把默认的全局搜索路径:

D:\a\r1\a\**\*.zip

替换成指向你网站项目的具体路径,比如:

  • 如果你的网站项目名为MyWebSite,可以改成:D:\a\r1\a\**\MyWebSite.zip
  • 更稳妥的是直接指向构建输出的特定位置:D:\a\r1\a\_你的构建管道名称\drop\MyWebSite.zip

这样部署任务就只会匹配到你需要的网站包,不会再把Web服务的包也拉进来。

2. 构建阶段只生成目标项目的部署包

从根源上减少多余的包:

  • 如果用VSBuild任务,把Solution字段从整个解决方案的.sln路径,改成只指向网站项目的.csproj文件,比如:**/MyWebSite.csproj
  • 如果用DotNetCoreCLI任务,在publish命令里指定项目路径:
dotnet publish **/MyWebSite.csproj -c Release -o $(Build.ArtifactStagingDirectory)

这样构建完成后,只会输出网站项目的部署包,从源头上避免多包冲突。

3. 调整构建任务的发布设置

有些构建任务自带“自动发布Web项目”的选项,你可以:

  • 关闭这个自动选项,手动指定要发布的项目
  • 或者在发布设置里明确勾选只包含你的网站项目,排除Web服务项目

错误原因补充

你看到的报错:

Errors (1) Error: More than one package matched with specified pattern: D:\a\r1\a***.zip. Please restrain the search pattern.

本质就是默认的全局搜索路径D:\a\r1\a\**\*.zip找到了网站和Web服务两个项目的部署包,Azure无法判断要部署哪一个,所以抛出了这个提示。只要缩小搜索范围到单一包就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:47:45