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

Azure DevOps流水线中无法将.bacpac文件上传至Azure Blob存储容器问题排查求助

Troubleshooting Azure File Copy Task "Empty Source Folder" Issue in Azure DevOps Pipeline

I’ve helped troubleshoot similar issues before, let’s walk through the most likely causes and fixes step by step:

1. Verify Your Path Variable Mapping

Your first task generates the .bacpac at D:\a\r1\a\GeneratedOutputFiles\filename.bacpac, but the Azure File Copy task uses $(System.ArtifactsDirectory)\GeneratedOutputFiles as the source. Here’s the catch: $(System.ArtifactsDirectory) is typically used for downloaded artifacts, not the current build’s output directory. The correct variable for your build’s staging directory is usually $(Build.ArtifactStagingDirectory) (which maps to D:\a\r1\a in most cases).

To confirm, add a quick PowerShell task right after your backup step to print variable values and list files:

Write-Host "System.ArtifactsDirectory path: $(System.ArtifactsDirectory)"
Write-Host "Build.ArtifactStagingDirectory path: $(Build.ArtifactStagingDirectory)"
Get-ChildItem -Path $(Build.ArtifactStagingDirectory)\GeneratedOutputFiles -Recurse

This will show you exactly which directory holds your .bacpac and whether the variable you’re using points to it.

2. Check the Backup Task’s Output Configuration

Double-check that your Azure SQL Database deployment task is actually writing the .bacpac to the directory you expect. Sometimes the task’s output path needs explicit configuration, or there might be a typo in the folder name. Add a dir command (or PowerShell list) immediately after the backup task to confirm the file exists in the target folder before the copy step runs.

3. Adjust the Azure File Copy Source Path Format

Even if the folder has files, the task might not pick them up if the path format is off:

  • Add a wildcard to target the .bacpac directly: $(Build.ArtifactStagingDirectory)\GeneratedOutputFiles\*.bacpac
  • Ensure the path ends with a slash if targeting a folder: $(Build.ArtifactStagingDirectory)\GeneratedOutputFiles\
  • Avoid relative paths unless you’re certain the task’s working directory matches the file location.

4. Confirm Task Order & Dependencies

Make sure your backup task runs before the Azure File Copy task. If your pipeline has parallel jobs or conditional tasks, the copy step might start before the .bacpac is fully generated. To enforce this, go to the Azure File Copy task’s settings and add an explicit dependency on the backup task under the "Dependencies" tab.

5. Rule Out File Locking or Permissions

Occasionally, the backup process might hold a lock on the .bacpac file temporarily, preventing the copy task from accessing it. Add a short delay between tasks with a PowerShell step:

Start-Sleep -Seconds 10

Also, confirm the Azure DevOps agent service account has read permissions for the file (though this is usually default, it’s worth checking if you’ve customized agent permissions).


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 18:57:38