我们有几个大项目,我们在 VS2010 和 IIS7 中使用发布功能。我们使用“Web 部署”选项进行发布。现在,当 User1 首次发布时,所有文件都会上传,如果此用户对文件进行更改并再次发布,则只会发布更改的文件。但是 User2 稍后发布(同一项目),但 VS/IIS 将再次上传所有文件,而可能只有 1 个文件被更改。再次上传所有文件后,User1 也必须再次上传所有文件!
非常烦人的行为,200mb 大小的项目需要近 30 分钟才能发布。是否有一个设置可以让 IIS/VS 更好地检查文件是否已更改?
答案1
您只需为每个应用程序/机器发布一次(尽管您可以在每个根配置/机器上发布)。之后(至少在 Web Deploy 2.0 中),您可以通过执行以下操作进行同步 msdeploy -verb:sync -source:webServer -dest:webServer,computerName=Server2
其中明确提到
同步操作获取源的转储、目标的转储,然后逐个节点比较结果。规则和链接扩展检查每个节点以确定必须添加、删除或更新的内容。有关规则和链接扩展的详细信息,请参阅 Web 部署规则和 Web 部署链接扩展。
编辑 1:msdeploy 的意义在于它可以成为持续集成的一部分。您可能可以编写一个不错的脚本,该脚本将在每次构建时执行。话虽如此,如果您去VS 构建后事件您可以添加该脚本。您提到的问题可能是 ACL,我猜您可以通过 ignoreError 忽略它,或者进行最终部署,以解析来自一个用户的 ACL,然后仅从该用户同步。后者也会增加安全性。