AzureDevops & dotnet pack: ##[error]没有文件匹配搜索模式
AzureDevops & dotnet pack: ##[error]No files matched the search pattern
我有一个项目,我想将其转换为 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。
根据 docs,您缺少此任务所需的参数
#packagesToPack: '**/*.csproj' # Required when command == Pack
尝试 nuget 推送时,我在 Devops(w/Azure 管道代理池)中遇到了基本相同的问题。 packagesToPush 的建议路径:
'$(Build.ArtifactStagingDirectory)/*.nupkg'
不会工作,也不会等同于上面接受的答案(或与工件暂存目录和
的任何组合
/**/*.nupkg
通配符,带或不带单引号)。
我单击省略号并导航到我的 nuget 文件并将文件名更改为通配符,现在它看起来像这样:
$(System.DefaultWorkingDirectory)/MyPipelineName/drop/*.nupkg
这解决了问题。我收到“[警告]没有匹配搜索模式的包”,但是当我更改为使用默认工作目录的路径时,它就消失了。
我有一个项目,我想将其转换为 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。
根据 docs,您缺少此任务所需的参数
#packagesToPack: '**/*.csproj' # Required when command == Pack
尝试 nuget 推送时,我在 Devops(w/Azure 管道代理池)中遇到了基本相同的问题。 packagesToPush 的建议路径:
'$(Build.ArtifactStagingDirectory)/*.nupkg'
不会工作,也不会等同于上面接受的答案(或与工件暂存目录和
的任何组合/**/*.nupkg
通配符,带或不带单引号)。
我单击省略号并导航到我的 nuget 文件并将文件名更改为通配符,现在它看起来像这样:
$(System.DefaultWorkingDirectory)/MyPipelineName/drop/*.nupkg
这解决了问题。我收到“[警告]没有匹配搜索模式的包”,但是当我更改为使用默认工作目录的路径时,它就消失了。