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

问题描述 投票:0回答:1

我正在开发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。

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

提前致谢。

azure-devops azure-pipelines file-copying
1个回答
0
投票

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

- 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个任务。

© www.soinside.com 2019 - 2024. All rights reserved.