我定义了 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 构建过程的快照-
以下是发布 Artifact 的位置 -
请让我知道如何在 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)
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
.然后添加归档文件任务来归档这个文件夹。但是,此解决方法无法保留原始文件结构。
关于azure-devops - 如何在 VSTS 构建过程中在创建 zip 之前修改发布工件文件夹 $(build.artifactstagingdirectory)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59107094/