【问题标题】:How to modify Publish Artifact folder $(build.artifactstagingdirectory) prior its zip creation in VSTS Build process?如何在 VSTS 构建过程中创建 zip 之前修改 Publish Artifact 文件夹 $(build.artifactstagingdirectory)?
【发布时间】:2019-11-29 15:00:33
【问题描述】:

我定义了 VSTS 构建过程,直到发布工件步骤。默认情况下,VSTS 代理在 Publish Artifact 位置 (c:\vsts-agent_work\1\a) 创建 5 个文件,包括重要的构建文件,即 zip 文件夹。当我检查 zip 文件夹时,我发现我的构建文件所在的路径很长。 zip 中的文件夹路径 -

\Content\C_C\vsts-agent\_work\1\s\ABCProject\obj\Release\Package\PackageTmp

查看_work文件夹后,我知道zip文件的源是源目录-

C:\vsts-agent\_work\1\s\ABCProject\obj\Release\Package\PackageTmp

我想要一个位于 C:\vsts-agent\_work\1\s\CCM2015MVC\obj\Release\Package\PackageTmp 目录中的文件夹(RDLCReports 文件夹)。我设法使用复制文件任务创建了该文件夹。我在 Publish Artifact 步骤之前执行了此步骤。

问题是当发布工件步骤完成时,我没有在 zip 文件中获得该文件夹。

以下是 VSTS 构建过程的快照-

下面是发布工件位置 -

请告诉我如何在 zip 中添加该文件夹?而且我还想知道VSTS构建考虑将哪个源路径作为zip文件夹?

【问题讨论】:

  • 如果您想要 webdeploy 包中的文件,请将它们作为内容添加到项目中,并在 MSBuild 文件中将 CopyToPublishDirectory 设置为 true
  • 嗨@SSD 你试过下面的解决方案了吗,效果如何?如果有任何问题,请告诉我?
  • 嗨@LeviLu-MSFT 我提到了你的解压缩和压缩方法,似乎是正确的,但没有尝试。我所做的是 - 我在发布工件任务之前使用复制文件任务将 RDLC 报告文件夹复制到 $(build.artifactstagingdirectory) 位置,所以现在我有 zip 包和文件夹。在发布部分(部署过程),我在 Azure App Service Deploy 之后添加了 FTP 上传任务(用于 RDLC 报告文件夹)并且它工作。

标签: azure-devops azure-pipelines-release-pipeline azure-artifacts


【解决方案1】:

文件夹 (c:\vsts-agent_work\1\a) 中的内容是在 Visual Studio 构建任务 步骤中创建的。这样即使您设法使用复制文件任务在C:\vsts-agent\_work\1\s\CCM2015MVC\obj\Release\Package\PackageTmp 中创建了 RDLCReports 文件夹。不会再复制压缩到c:\vsts-agent_work\1\a

有一种解决方法可以实现这一点。如果您想在 zip 文件中保留文件夹结构,您可以按照以下步骤操作:

1,您需要添加一个解压文件任务来将文件夹$(build.artifactstagingdirectory)中的zip文件解压到不同的文件夹(eg.$(Agent.BuildDirectory)/Temp)

2、添加复制文件任务,在$(Agent.BuildDirectory)/Temp 解压文件夹内创建RDLCReports 文件夹

3、添加归档文件任务对文件夹中的文件进行归档 $(Agent.BuildDirectory)/Temp 创建文件夹 RDLCReports 的位置。

确保取消选中选项将根文件夹名称添加到存档路径选中 替换现有存档

(以上示例。我的测试项目名为 AboutSite,压缩文件为 AboutSite.zip。文件夹结构为Content\C_C\agent\_work\1\s\AboutSite\AboutSite\obj\Release\netcoreapp2.0\PubTmp\Out。您需要根据您的项目对路径和文件名进行一些更改。 )

对于您的项目,您可能会发现C:\vsts-agent\_work\1\s\ABCProject\obj\Release\Package\PackageTmp 中的内容与您的 zip 文件相同。因此,还有另一种解决方法是添加复制文件任务并定位此路径 C:\vsts-agent\_work\1\s\ABCProject\obj\Release\Package\PackageTmp 。然后添加归档文件任务来归档这个文件夹。但是,此解决方法无法保留原始文件结构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    相关资源
    最近更新 更多