Azure devops 在Angular 6+;的Azure DevOps的下一个版本发布之前清除outputPath;asp.net应用程序

Azure devops 在Angular 6+;的Azure DevOps的下一个版本发布之前清除outputPath;asp.net应用程序,azure-devops,continuous-integration,devops,continuous-deployment,continuous-delivery,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添加到同一输出路径 这就产生了应用程序仍然引用旧main.{ol

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

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

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

因为现有web部署已经具有main.{oldhashvalue}.js

如果我正在执行下一个版本定义,那么它会将另一个main.{newhashvalue}.js添加到同一输出路径

这就产生了应用程序仍然引用旧main.{oldhashvalue}.js的问题

那么,在发布定义期间,如何在下一次部署之前清理旧的outputPath呢

以下是发布定义的YAML格式

步骤:

  • 任务:AzureRmWebAppDeployment@3

    displayName:“将Azure应用程序服务部署到插槽”

    投入:

    azureSubscription:“azureSubscription-服务端点”

    WebAppName:firstwebappname

    DeployToSlotFlag:true

    ResourceGroupName:firstresourcegroupname

    SlotName:dev

    包:'$(System.DefaultWorkingDirectory)***.zip'

    TakeAppOfflineFlag:真

    UseWebDeploy:true

    RenameFileFlag:true

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


在构建过程中,将输出定向到
$(build.ArtifactStagingDirectory)
。每次生成运行时,该文件夹都会被清除。

在生成过程中,将输出指向
$(build.ArtifactStagingDirectory)
。每次运行生成时都会清除该文件夹。

是否在“删除添加文件”上方使用Web部署选项进行发布?是。检查过了。我的错,这也在yaml中显示。在生成之前删除outputpath中的文件的任务如何?生成过程将清除以前的outputpath。我验证了部署zip文件。此问题在发布定义期间发生。在部署之前,它必须清除outputPath文件夹。那么,是否可以将删除文件任务添加到发布管道?是否在删除添加文件上方使用Web部署选项进行发布?是。检查过了。我的错,这也在yaml中显示。在生成之前删除outputpath中的文件的任务如何?生成过程将清除以前的outputpath。我验证了部署zip文件。此问题在发布定义期间发生。在部署之前,它必须清除outputPath文件夹。您可以将删除文件任务添加到发布管道吗?它指向$(Build.ArtifactStagingDirectory)。构建工作正常。我验证了构建成功后,下载了构建构件zip并验证了位置。它会清除文件。@ggn979那么我不明白你在问什么。要么是与构建过程相关的问题,要么是与部署过程相关的问题。更新您的问题,以解释您在哪一点遇到问题。Daniel Mann,在我之前的评论中,我错过了有关发布定义的信息。在这里…构建定义工作正常。此问题在发布定义期间发生。在部署之前,它必须清除outputPath文件夹。我不想启用“在目标位置删除其他文件”。因为它将删除节点_模块。我在问题中提到了这一点,我不明白“outputPath文件夹”在这里的意思。该版本没有outputPath。你说的是Azure Web应用程序的文件系统吗?正如我在问题中提到的,我使用的是Angular+asp.net应用程序。Angular有一个名为outputPath的设置(Angular.json),它在其中部署Angular应用程序的所有编译js文件。它指向$(Build.ArtifactStagingDirectory)。构建工作正常。我验证了构建成功后,下载了构建构件zip并验证了位置。它会清除文件。@ggn979那么我不明白你在问什么。要么是与构建过程相关的问题,要么是与部署过程相关的问题。更新您的问题,以解释您在哪一点遇到问题。Daniel Mann,在我之前的评论中,我错过了有关发布定义的信息。在这里…构建定义工作正常。此问题在发布定义期间发生。在部署之前,它必须清除outputPath文件夹。我不想启用“在目标位置删除其他文件”。因为它将删除节点_模块。我在问题中提到了这一点,我不明白“outputPath文件夹”在这里的意思。该版本没有outputPath。你说的是Azure Web应用程序的文件系统吗?正如我在问题中提到的,我使用的是Angular+asp.net应用程序。Angular具有名为outputPath的设置(Angular.json),它在其中部署Angular应用程序的所有编译js文件。