Web Deploy 将具有相同时间戳的文件发布到 Azure

Web Deploy publishing files to Azure with identical timestamps

我有一个 asp.net mvc 项目要发布到 Azure 应用服务部署槽。我是 运行 Visual Studio 2019 16.11.9.

这一直运行良好,但最近我发现发布需要很长时间。当我查看发布预览时,我看到对于未更改且与已发布文件具有相同时间戳的文件,操作设置为“更新”。

我 运行 一个 Kudu 会话命令提示符并确认时间戳与我的本地文件相同。

我不明白为什么 Web Deploy 要更新这些文件。我在哪里可以找到解决方案?

时间戳

  • 默认情况下,WebDeploy 使用时间戳 方法来识别修改的文件。
  • 如果您尝试两次部署同一个包,我们可以看到它将部署所有文件,然后在第二次部署时没有文件运行。
  • 我们看到的典型问题是,由于新时间戳,可能未更改的文件将被标记为新文件=]新build/package..
  • 如果我们在不修改代码的情况下重建项目并部署新包,我们可以看到它重新部署了 dll、pdb 和配置文件。

校验和

  • 此选项使用校验和值而不是日期时间来比较每个文件。
  • 要使用此方法,如果通过 deploy.cmd 或 MSDeploy.exe
  • 部署,我们可以 use -useChecksum WebDeploy 标志
  • 如果我们在 MSBuild 过程中进行部署,我们可以添加 /p:MSDeployUseChecksum=true 参数,这将设置 MSDeploy标志。

在某些情况下,使用校验和标记可将部署时间减少 50-90%。

使用校验和,我们只会部署实际更改的文件,不需要任何特殊配置。

由于您的部署正在更新未更改的文件,请尝试使用校验和。