我想在部署时替换文件。无需替换现有文件,而是将它们添加到文件夹中,因为每个文件名都是动态生成的。
我遇到了默认为“删除其他文件”的“ 错误”,这可能是解决我的问题的方法。
但是,在阅读说明时,“目的地”有点模糊。文档here
当True指示Web Deploy从目标中删除文件时 不在源包中的
“目的地”是否与物理路径有关?
答案 0 :(得分:0)
是,目标将是 Physical Path 设置的值。
我认为对您来说有价值的设置是文件比较方法。它指示了进行比较的算法,以确定软件包应更新哪些文件(如果有)。
This链接指向博客文章,其中讨论了时间戳和校验和算法。我在下面包含了这篇文章的一部分。
时间戳而不是校验和
在章鱼3.0中,我们决定制作 校验和与文件同步的默认(也是唯一选择) WebDeploy。使用校验和,我们将只部署具有 实际更改,不需要任何特殊配置。这个 减少后续部署所需的时间和带宽 相同的网络应用。这对于中等大小的人来说确实很好 应用程序,但是,正如我们发现的那样,它变得异常缓慢且 大型应用程序不可靠。
如果您遇到这种情况,可以切换到使用 用于文件比较的时间戳,而不是使用Octopus Deploy的校验和 3.3.3或更高版本。
时间戳
如果您有任何现有的Azure Web App步骤,则需要更新 他们使用时间戳并创建新版本。任何新的Azure Web App 默认情况下,您创建的步骤将使用时间戳记,但您始终可以 如果更适合您的需求,请切换到校验和。
如果您喜欢校验和,我们计划升级到 Microsoft.Web.Deployment.3.6.0,其中有多个错误修复 校验和比较。
保留时间戳
使用时间戳记文件的缺点 比较就是可靠性-您很容易得出假阳性- 这就是为什么校验和是如此吸引人的原因。如果您使用的是NuGet软件包 文件解压缩后的时间戳将丢失 意味着每个文件似乎都是较新的文件,无论 是否已更改-更多细节。要变通解决此问题,请考虑 使用zip包-我们有自动测试来证明时间戳记 是通过部署端到端保留的。