【问题标题】:VSTS - include folder into ASP.NET Core app artifactVSTS - 将文件夹包含到 ASP.NET Core 应用程序工件中
【发布时间】:2017-09-03 09:00:35
【问题描述】:
我在一个单独的仓库中有一个 Angular 4 项目 (NG-p)。另外,我的 ASP.NET Core 项目 (Core-p) 在另一个仓库中。构建 Cope-p 时,它必须包含 NG-p 工件。我设法做到了。以下是它的工作原理:
- 当 NG-p 发生变化时,VSTS 会构建它并将 zip 文件放入 Azure 存储中
- Core-p 在那之后被构建并产生......嗯,一些东西......作为 BUILD .NET Core 任务的一部分
- 它从 Azure 存储中抓取该 zip 文件(NG-p 工件),将其解压缩并放入 $(Build.ArtifactStagingDirectory)/wwwroot/js/app 文件夹中
- 其他一切都是标准任务 - 测试、发布、发布工件
构建成功。但是当我打开工件时,它包含:
- wwwroot 文件夹(其中包含所有 NG-p 文件)
- 和 myproject.zip 文件(Core-p 的所有内容)
如何在 myproject.zip 中保存我的 NG-p 文件(并且没有单独的 wwwroot 文件夹)?
【问题讨论】:
标签:
angular
azure-pipelines
【解决方案1】:
是的,您可以在myproject.zip 中制作 NG-p 文件和 Core-p 文件。要将 NG-p 文件转换为 myproject.zip,您需要在 Core-p 构建定义中执行以下任务:
-
提取文件:在 Azure 中提取 zip 文件并将 zip 文件归档到
$(Build.ArtifactStagingDirectory)(目标文件夹)。
-
复制文件:将文件从 Core-p 存储库的根目录复制到
$(Build.ArtifactStagingDirectory)(目标文件夹)。
-
存档文件:将
$(Build.ArtifactStagingDirectory) 文件夹中的文件压缩为$(Build.ArtifactStagingDirectory)/myproject.zip 中的zip(要创建的存档文件)。
-
发布构建工件:将
myproject.zip 发布为工件。
【解决方案2】:
好的,我通过将提取文件任务中的目标路径更改为以下内容来使其工作:
$(Build.ArtifactStagingDirectory)/$(Build.Repository.Name)/wwwroot/js/app
现在,所有文件都在正确的位置。