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

Azure Function的Azure Pipeline发布任务找不到项目如何处理

DotNetCoreCLI@2 发布Azure Function项目找不到匹配文件的核心遗漏配置

绝大多数该场景的问题都来自以下3项配置缺失/错误,和直接执行script脚本的默认逻辑差异有关:

1. 未关闭默认Web项目过滤规则

DotNetCoreCLI@2 任务publish命令的默认配置为publishWebProjects: true,只会识别项目Sdk为Microsoft.NET.Sdk.Web的Web应用项目。Azure Function项目的Sdk为Microsoft.NET.Sdk.Functions,不属于默认识别范围,会被直接过滤,进而抛出找不到匹配项目的错误。
手动执行dotnet publish脚本没有该内置过滤逻辑,只要路径正确就能正常识别Function项目。

2. 项目匹配路径规则配置错误

DotNetCoreCLI@2的projects参数的路径匹配规则和终端直接执行命令的相对路径逻辑有差异:

  • 如果你在脚本中直接指定了项目文件的完整路径(比如dotnet publish ./src/MyFunc/MyFunc.csproj),但DotNetCoreCLI@2任务中仅配置*.csproj,任务只会在流水线根工作目录查找项目,不会递归扫描子目录。
  • 正确的配置需要写全匹配规则,比如递归匹配所有csproj用**/*.csproj,或者精确匹配目标项目**/MyFunc.csproj。

3. 工作目录配置缺失

如果你的脚本执行前有手动切换到项目所在目录的操作,但是DotNetCoreCLI@2任务没有配置workingDirectory参数指向对应目录,任务会默认从根工作目录开始查找项目,导致匹配失败。


标准可用配置参考

- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    publishWebProjects: false # 核心必填配置,关闭默认Web项目过滤
    projects: '**/YourFunctionProject.csproj' # 替换为你的项目匹配规则
    arguments: '--configuration Release --output $(Build.ArtifactStagingDirectory)'
    workingDirectory: '$(System.DefaultWorkingDirectory)/src' # 项目在子目录时按需配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:27:01