我正在开发Azure DevOps构建管道。我有一个Server.sln,它有学生2个C#项目,如Error.csproj
和Log.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 folder
和Log.dll into Log\bin\debug folder
。之后我想复制Error.dll from Error\bin\debug into Staging\Error
和Log.dll from Log\bin\debug folder into Staging\Log
。
为此,我使用2复制文件任务。
一个复制Error.dll和其他复制Log.dll。
是否可以将这2个复制任务合并为一个?
提前致谢。
根据您的文件夹结构,您可以通过这种方式从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个任务。