Azure 管道 yml:发布还是文件复制?

时间:2021-05-06 10:18:19

标签: azure-devops

在我的管道结束时,我想将 bin 直接复制到可用于部署的网络共享。

我看到有两种可能的任务可以做到这一点:

  • 复制文件,生成task: CopyPublishBuildArtifacts@1;或
  • _ 复制并发布生成 CopyPublishBuildArtifacts@1 的构建工件_。

而且这个发布dotnet publish不同?

我应该选择哪一个,为什么?

它们似乎具有相同的参数。 @ 有什么用?

1 个答案:

答案 0 :(得分:0)

<块引用>

Azure 管道 yml:发布还是文件复制?

不推荐使用任务 CopyPublishBuildArtifacts。如果您使用的是 Team Foundation Server 2017 或更高版本,我们建议您使用 Pipeline Artifacts

如果您想知道 publishbuildartifactspublishpipelineartifact 之间的区别,您可以查看以下线程以获取详细信息:

What is the difference between Build Artifact and Pipeline Artifact tasks?

<块引用>

这个发布与 dotnet 发布不同吗?

答案是肯定的。 dotnet publish 任务是为特定项目提供服务。其作用类似于我们在Visual Studio中为net core项目选择Publish选项。

但我们可以为 publishbuildartifactspublishpipelineartifact 任务指定要发布的文件夹或文件。

<块引用>

我应该选择哪一个,为什么?

如果您只想将 publishpipelineartifact 直接复制到网络共享,我们建议使用 bin 任务。

您可以从 here 查看原因:

  • 对于构建工件,通常将文件复制到 $(Build.ArtifactStagingDirectory),然后使用发布构建工件任务发布此文件夹。使用发布管道工件任务,您可以直接从包含文件的路径发布。
  • 默认情况下,下载管道工件任务将文件下载到 $(Pipeline.Workspace)。这是所有类型工件的默认路径和推荐路径。
  • 下载构建工件任务的文件匹配模式应以工件名称开头(或匹配),无论是否指定了特定工件。在下载管道工件任务中,如果已经指定了工件名称,则模式不应包含工件名称。如需了解详情,请参阅单个工件选择。
<块引用>

@ 是什么?

@的作用是指定任务的版本。例如,@1 是使用任务的版本 1.0