首页 > 解决方案 > AzureDevops & dotnet pack:##[错误]没有文件与搜索模式匹配

问题描述

我有一个项目,我想在 Azure DevOps CI 构建中将其转换为 NuGet 包。解决方案中的相关文件如下所示:

/
    RandExp.sln
        /RandExp
            RandExp.fsproj

        /Tests
            Tests.fsproj

我有一个 azure-pipelines.yml 文件,如下所示:

trigger:
- ci

pool:
  vmImage: "ubuntu-latest"

variables:
  buildConfiguration: "Release"

steps:
- task: GitVersion@5
  inputs:
    runtime: 'core'
    updateAssemblyInfo: true

- task: DotNetCoreCLI@2
  displayName: "DotNet restore"
  inputs:
    command: 'restore'
- task: DotNetCoreCLI@2
  displayName: "DotNet build $(buildConfiguration)"
  inputs:
    command: 'build'
    arguments: '--configuration $(buildConfiguration) --no-restore'
  
- task: DotNetCoreCLI@2
  displayName: "DotNet test ($(buildConfiguration))"
  inputs:
    command: test
    arguments: '--configuration $(buildConfiguration)'
    
- task: DotNetCoreCLI@2
  displayName: "DotNet pack"
  inputs:
    command: 'pack'
    nobuild: true
    versioningScheme: 'byBuildNumber'

- task: DotNetCoreCLI@2
  displayName: "DotNet push"
  inputs:
    command: 'push'
    packagesToPush: '$(Build.ArtifactStagingDirectory)/*.nupkg'
    nuGetFeedType: 'external'
    publishFeedCredentials: 'Public Nuget'

一切都运行良好,直到倒数第二个任务:DotNet pack. 它错误[error]No files matched the search pattern

Starting: DotNet pack
==============================================================================
Task         : .NET Core
Description  : Build, test, package, or publish a dotnet application, or run a custom dotnet command
Version      : 2.175.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/dotnet-core-cli
==============================================================================
##[error]No files matched the search pattern.
Info: Azure Pipelines hosted agents have been updated to contain .Net Core 3.x (3.1) SDK/Runtime along with 2.1. Unless you have locked down a SDK version for your project(s), 3.x SDK might be picked up which might have breaking behavior as compared to previous versions. 
Some commonly encountered changes are: 
If you're using `Publish` command with -o or --Output argument, you will see that the output folder is now being created at root directory rather than Project File's directory. To learn about more such changes and troubleshoot, refer here: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/dotnet-core-cli?view=azure-devops#troubleshooting
Finishing: DotNet pack

几个小时以来,我一直用这个把头撞在墙上;我已经尝试了我能想到的一切,但除了同样的错误之外,无法从这项任务中得到任何东西,现在已经放弃了。

值得一提的是,在我的机器上,我可以cd进入我的解决方案的根目录并运行dotnet pack它,它可以正常工作,生成我期望的 nupkg。

标签: .netazure-devopsf#nuget

解决方案


根据文档,您缺少此任务所需的参数

#packagesToPack: '**/*.csproj' # Required when command == Pack

推荐阅读