azure-devops - 如何在 VSTS 构建过程中在创建 zip 之前修改发布工件文件夹 $(build.artifactstagingdirectory)?

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

我定义了 VSTS 构建过程,直到发布工件步骤。默认情况下,VSTS 代理在发布工件位置 (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 文件夹)。我设法使用复制文件任务创建了该文件夹。我在发布工件步骤之前做了这一步。

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

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

enter image description here

以下是发布 Artifact 的位置 -

enter image description here

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

最佳答案

文件夹 (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 文件解压缩到不同的文件夹(例如 $(Agent.BuildDirectory)/Temp)
enter image description here

2、添加复制文件任务在 $(Agent.BuildDirectory)/Temp 中提取的文件夹内创建 RDLCReports 文件夹
enter image description here

3、添加归档文件任务 将文件夹中的文件归档
$(Agent.BuildDirectory)/Temp 在其中创建文件夹 RDLCReports。

enter image description here

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

(如上例。我的测试项目名为 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 .然后添加归档文件任务来归档这个文件夹。但是,此解决方法无法保留原始文件结构。

关于azure-devops - 如何在 VSTS 构建过程中在创建 zip 之前修改发布工件文件夹 $(build.artifactstagingdirectory)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59107094/

相关文章:

azure-devops - azure devops 中托管代理的时区可以更改吗?

TFS安全: Where is the "Create a new Publisher" permission?

python - azure 管道中的 pip install azure-functions 因 pip 验证任务而失败

azure-devops - 如何配置 Azure DevOps 发布管道以使用来自 Azure Artifacts 的通用包?

azure-devops - 如何在 vsts 发布任务中使用 secret 变量?

azure - 映射 yarn 构建输出以暂存工件

azure-devops - 如何将我的配置转换文件包含在 Web 部署 zip 中?

azure-devops - 无法使用 NuGet 上游源从 Azure DevOps Artifacts 源下载某些包

azure - 独占锁管道级别 - Azure

azure-pipelines-release-pipeline - TFS2017 当旧的构建/版本被清除时