我有一个网站,其中包含大量文件,使用团队构建和通过 Web 部署包进行部署。我遇到的问题是软件包是从农场的一台机器上构建的,时间戳并不总是匹配的。默认情况下,使用 Web 部署意味着完整的站点滚动以及如此多的文件和跨集群的同步,这不是最佳的。
使用 cmd line deploy 我可以通过 -UseCheckSum ,这可以解决手动部署。现在我正在尝试使用具有自动部署功能的 CI 构建,并通过我的构建设置传递 MSbuild 参数。有没有办法让它以相同的方式部署?
您无法在 MSBuild 中执行此操作,但可以编辑构建服务器上的 Microsoft.Web.Publishing.targets 文件以应用 -UseChecksum。
在这里查看我的答案:https ://stackoverflow.com/a/13863041/8037
更新:MS 添加了将 UseChecksum 标志传递给 VS 2013 的功能。为此,请将以下属性添加到 .pubxml 文件中:
<MSDeployUseChecksum>true</MSDeployUseChecksum>
更多信息可以在这里找到:http: //blogs.msdn.com/b/webdev/archive/2013/10/30/web-publishing-updates-for-app-offline-and-usechecksum.aspx
如果“MSBuild”是指 Web Publishing Pipeline,那么答案是否定的。MSDeploy
msbuild 任务支持UseChecksum
属性,但 WPP 目标不提供可以设置它的机制。许多其他功能(如存储的凭据)也是如此。