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

DevOps Pipeline忽略指定项目失败,NuGet还原报错求助

解决Azure DevOps Pipeline中NuGet还原阶段排除项目失败的问题

问题根源

当前配置的核心错误在于projects参数使用了换行格式,Azure DevOps的DotNetCoreCLI任务无法正确解析多行匹配模式;同时macOS的大小写敏感特性,也可能因文件名大小写不匹配导致排除规则失效,最终触发No files matched the search pattern错误。

解决方案

1. 修正匹配模式格式

将包含与排除模式合并为单行,用逗号分隔,这是DotNetCoreCLI任务要求的正确格式:

- task: DotNetCoreCLI@2
  displayName: 'Nuget Restore'
  inputs:
    command: 'restore'
    projects: '**/*.csproj,!**/Portal.Desktop.csproj' # 合并为单行,用逗号分隔规则
    feedsToUse: 'config'
    nugetConfigPath: 'nuget.config'

2. 验证路径匹配准确性

  • macOS是大小写敏感系统,确保Portal.Desktop.csproj的文件名大小写与实际项目完全一致,避免因大小写不匹配导致排除规则失效,进而没有符合条件的项目被选中。
  • 可在Pipeline中添加Bash任务,提前列出所有.csproj文件,确认目标文件路径:
    - task: Bash@3
      displayName: 'List all csproj files'
      inputs:
        targetType: 'inline'
        script: 'find $(Build.SourcesDirectory) -name "*.csproj"'
    

3. 显式指定MAUI项目(备选方案)

如果排除模式仍有问题,直接指定MAUI项目路径可更精准避免匹配错误,例如:

- task: DotNetCoreCLI@2
  displayName: 'Nuget Restore'
  inputs:
    command: 'restore'
    projects: '**/YourMauiProjectName.csproj' # 替换为你的MAUI项目文件名
    feedsToUse: 'config'
    nugetConfigPath: 'nuget.config'

额外排查步骤

  • 在本地macOS环境运行dotnet restore **/*.csproj !**/Portal.Desktop.csproj,验证是否能正确找到并还原MAUI项目依赖。
  • 确认Pipeline的代码拉取步骤已完整获取所有项目文件,未遗漏MAUI项目的.csproj。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:46:10