Azure Pipeline将文件从多个源文件夹复制到单个目标

时间:2019-04-10 21:33:29

标签: azure-devops azure-pipelines file-copying

我正在研究Azure DevOps构建管道。我有一个Server.sln,其中有学生2个C#项目,例如Error.csprojLog.csproj

我的文件夹结构如下

Code (folder) 
   Error (folder) 
      Error.csproj
   Log (folder) 
      Log.csproj
   Server.sln

Staging (folder) 
 Error (folder) 
 Log (folder) 

我有Azure Pipeline,它在调试模式下具有生成任务,该任务会生成Error.dll in Error\bin\debug folderLog.dll into Log\bin\debug folder。 之后,我要复制 Error.dll from Error\bin\debug into Staging\ErrorLog.dll from Log\bin\debug folder into Staging\Log

为此,我正在使用 2个复制文件任务

一个复制Error.dll,另一个复制Log.dll。

是否可以将这两个复制任务合并为一个?

谢谢。

1 个答案:

答案 0 :(得分:0)

根据您的文件夹结构,您可以通过这种方式(在YAML中)从2个路径中复制2个文件:

- task: CopyFiles@2
  displayName: 'Copy Error and Log dll's'
  inputs:
    SourcesFolder: '$(Build.SourcesDirectory)'
    Contents: |
     Code/Error/bin/Debug/Error.dll
     Code/Log/bin/Debug/Log.dll
    TargetFolder: '$(Build.ArtifactsStagingDirectory)' # Or different folder

但是您只能复制到一个目标,并且在目标文件夹中将具有“目录”中指定的所有文件夹:

- c:/agnet/_work/a/Code
                       - Error/bin/Debug/Error.dll
                       - Log/bin/Debug/Log.dll

如果要复制到2个文件夹(如果发生错误,请登录)或仅复制dll(不包含它们的文件夹),则必须使用2个复制任务,或者可以使用PowerShell脚本进行复制然后您只能使用1个任务。