Azure DevOps 部署并不总是覆盖 cshtml 文件

时间:2021-01-13 15:21:17

标签: razor azure-devops azure-web-app-service azure-pipelines azure-pipelines-tasks

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

1 个答案:

答案 0 :(得分:1)

这很奇怪。如果使用 Azure Pipelines 中的 Azure 应用服务部署任务部署到 Web 应用,则可以选择在目标位置删除其他文件。启用此选项会删除 Azure 应用服务中在正在部署的应用服务项目包或文件夹中没有匹配文件的文件。

基于 chosen deployment method,还有其他有用的附加部署选项,例如:

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

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

Additional Deployment Options

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