在管道的末尾,我想将bin
直接复制到网络共享中,以便从中进行部署。
我看到有两种可能的任务类型可以做到这一点:
-
复制生成
task: CopyPublishBuildArtifacts@1
的文件;或 - _复制并发布生成CCD_ 3的构建工件_
这个发布与dotnet publish
不同吗?
我应该选择哪一个,为什么?
它们似乎具有相同的参数。@
的作用是什么?
Azure管道yml:发布还是文件复制?
不赞成使用任务CopyPublishBuildArtifacts
。如果您使用的是Team Foundation Server 2017或更新版本,我们建议您使用管道工件。
如果你想知道publishbuildartifacts
和publishpipelineartifact
之间的区别,你可以查看下面的线程了解详细信息:
构建工件和管道工件任务之间的区别是什么?
这个发布与dotnet发布不同吗?
答案是肯定的。dotnet publish
的任务是为特定项目服务。它的功能类似于我们在Visual Studio中为net core项目选择"发布"选项。
但是,我们可以为publishbuildartifacts
或publishpipelineartifact
任务指定要发布的文件夹或文件。
我应该选择哪一个,为什么?
如果您只想将bin
直接复制到网络共享,我们建议您使用publishpipelineartifact
任务。
你可以从这里查看原因:
- 对于构建工件,通常将文件复制到$(build.ArtifactStagingDirectory(,然后使用"发布构建工件"任务来发布此文件夹。使用"发布管道工件"任务,您可以直接从包含文件的路径进行发布
- 默认情况下,下载管道工件任务将文件下载到$(Pipeline.Workspace(。这是所有类型工件的默认路径和推荐路径
- 下载构建工件任务的文件匹配模式应以工件名称开头(或匹配(,无论是否指定了特定工件。在下载管道工件任务中,当已经指定工件名称时,模式不应该包括工件名称。有关更多信息,请参阅单个工件选择
@是什么用的?
@的作用是指定任务的版本。例如,@1
将使用该任务的版本1.0
。