在下一版Angular 6 + asp.net应用程序的Azure DevOps之前清除outputPath

时间:2019-05-08 16:59:05

标签: azure-devops continuous-integration devops continuous-deployment continuous-delivery

我正在使用Azure Devops部署Angular 6 + asp.net应用程序。

ng build --prod命令完美地部署到位于angular.json的outputPath中的目标文件夹中

在发布定义(CD)期间,我们需要清除现有outputPath中的所有文件。

因为现有的Web部署已经具有main。{oldhashvalue} .js。

如果我要进行下一个发行版定义,则它将另一个main。{newhashvalue} .js添加到同一outputPath。

这会导致应用程序仍然引用旧main。{oldhashvalue} .js的问题。

那么,如何在版本定义期间在下次部署之前清理旧的outputPath?

这是版本定义的YAML格式

步骤:

  • 任务:AzureRmWebAppDeployment @ 3

    displayName:“将Azure App Service部署到插槽”

    输入:

    azureSubscription:“ azureSubscription-服务端点”

    WebAppName:firstwebappname

    DeployToSlotFlag:是

    ResourceGroupName:firstresourcegroupname

    SlotName:dev

    包装:“ $(System.DefaultWorkingDirectory)***。zip”

    TakeAppOfflineFlag:是

    UseWebDeploy:是

    RenameFilesFlag:是

我已经尝试启用“在目标位置删除其他文件”选项,但是它清除了始终需要的node_modules文件夹。不想一直安装。

enter image description here

1 个答案:

答案 0 :(得分:0)

在构建期间,将输出定向到$(Build.ArtifactStagingDirectory)。每次运行构建时都会清除该文件夹。