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%。
使用校验和,我们只会部署实际更改的文件,不需要任何特殊配置。
由于您的部署正在更新未更改的文件,请尝试使用校验和。
我有一个 asp.net mvc 项目要发布到 Azure 应用服务部署槽。我是 运行 Visual Studio 2019 16.11.9.
这一直运行良好,但最近我发现发布需要很长时间。当我查看发布预览时,我看到对于未更改且与已发布文件具有相同时间戳的文件,操作设置为“更新”。
我 运行 一个 Kudu 会话命令提示符并确认时间戳与我的本地文件相同。
我不明白为什么 Web Deploy 要更新这些文件。我在哪里可以找到解决方案?
时间戳
- 默认情况下,WebDeploy 使用时间戳 方法来识别修改的文件。
- 如果您尝试两次部署同一个包,我们可以看到它将部署所有文件,然后在第二次部署时没有文件运行。
- 我们看到的典型问题是,由于新时间戳,可能未更改的文件将被标记为新文件=]新build/package..
- 如果我们在不修改代码的情况下重建项目并部署新包,我们可以看到它重新部署了 dll、pdb 和配置文件。
校验和
- 此选项使用校验和值而不是日期时间来比较每个文件。
- 要使用此方法,如果通过 deploy.cmd 或 MSDeploy.exe 部署,我们可以
- 如果我们在 MSBuild 过程中进行部署,我们可以添加
/p:MSDeployUseChecksum=true
参数,这将设置 MSDeploy标志。
use
-useChecksum
WebDeploy 标志
在某些情况下,使用校验和标记可将部署时间减少 50-90%。
使用校验和,我们只会部署实际更改的文件,不需要任何特殊配置。
由于您的部署正在更新未更改的文件,请尝试使用校验和。