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

Azure DevOps deploy overwrites not always cshtml files

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

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

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

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

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

将这些准备就绪可以简化您的部署并使其稳健。这是该任务的完整参考:Azure App Service Deploy task.