我定义了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构建过程的快照-
下面是“发布工件”位置-
请让我知道如何在zip中添加该文件夹?而且我还想知道VSTS构建所考虑的源路径是zip文件夹吗?
答案 0 :(得分:2)
文件夹(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
。然后添加存档文件任务来存档此文件夹。但是,此解决方法无法保留原始文件结构。