首页 > 解决方案 > Azure DevOps 部署并不总是覆盖 cshtml 文件

问题描述

有时会发生,当我们进行部署时,最后提交的扩展名为 cshtml 的文件没有更新。我们还没有看到其他类型的文件没有更新。可能是文件正在使用中并且无法被覆盖。是否可以在部署过程中添加一个额外的步骤来避免这种情况?

标签: razorazure-devopsazure-web-app-serviceazure-pipelinesazure-pipelines-tasks

解决方案


这很奇怪。如果您使用 Azure Pipelines 中的 Azure App Service Deploy 任务部署到您的 Web 应用程序,您可以选择Remove additional files at destination。启用此选项会删除 Azure 应用服务中在正在部署的应用服务项目包或文件夹中没有匹配文件的文件。

根据选择的部署方法,还有其他有用的附加部署选项,例如:

  • 重命名锁定的文件:MSDEPLOY_RENAME_LOCKED_FILES=1通过启用Azure 应用服务设置中的 msdeploy 标志来重命名 Web 服务器仍在使用的任何文件。此选项(如果设置)使 msdeploy 能够重命名在应用部署期间锁定的文件。这样,您可以避免部署失败并ERROR_FILE_IN_USE出现错误。

  • 使应用程序脱机:选择此选项可通过app_offline.htm在同步操作开始之前将文件放在根目录中使 Azure 应用程序服务脱机。同步成功完成后,该文件将被删除。

其他部署选项

拥有这些可以简化您的部署并使其健壮。以下是该任务的完整参考:Azure App Service Deploy task


推荐阅读