我目前正在尝试测试我的DacPac糟糕的管道。但是,我总是收到错误消息:
##[error]No files were found to deploy with search pattern C:\agent\_work\5\a\sqlproj_artifacts_1\DWH\DWH\bin\Release\database.dacpacCheck out how to troubleshoot failures at
我找不到问题所在。这里的代码,知道为什么它不工作吗?以前做过而且工作得很完美..。
steps:
- task: VSBuild@1
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.SourcesDirectory)'
ArtifactName: 'sqlproj_artifacts_$(System.JobAttempt)'
publishLocation: 'Container' steps:
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'sqlproj_artifacts_$(System.JobAttempt)'
downloadPath: '$(System.ArtifactsDirectory)' deployType: 'DacpacTask'
DeploymentAction: 'Publish'
DacpacFile: '$(System.ArtifactsDirectory)/sqlproj_artifacts_$(System.JobAttempt)/DWH/DWH/bin/Release/$(azureSqlDBName).dacpac'我使用的是AuthenticationType:'server'
这是项目所在的本地路径:source\repos\DataWarehouse\DWH\DWH
试着调整路径,但还是不起作用。
希望你能帮我,谢谢!
发布于 2022-11-15 16:40:10
当您单击工件时,您可以在构建屏幕上检查正在寻找的工件的路径:

在这里,$(azureSqlDBName).dacpac文件名在我看来是可疑的,就好像dacpac是从一个sql项目生成的,那么该文件可能会有项目名,而不是azure名称。
此外,我还将尝试发布用于单独部署的单独构建构件,因此,我将不为整个源工件目录创建工件,而是将dacpac从源代码复制到暂存目录,然后发布dacpac工件:
- task: CopyFiles@2
displayName: 'Copy DacPac Files'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: '**/*.dacpac'
TargetFolder: '$(Build.ArtifactStagingDirectory)/db'
CleanTargetFolder: true
OverWrite: true
flattenFolders: true
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/db'
ArtifactName: 'sqlproj_artifacts_$(System.JobAttempt)'
publishLocation: 'Container'然后,当您需要使用工件时,更容易找到您要查找的内容。请注意flattenFolders标志,当您处理工件中的单个包时,它会派上用场。
还有一件事是使用管道工件,而不是构建构件,因为您已经在使用yaml管道,可能还有多个阶段的yaml,您可以利用管道构件自动下载到默认的工作区文件夹。
希望能帮上忙
https://stackoverflow.com/questions/74448429
复制相似问题