1

我想在部署时替换文件。它们不是替换现有的,而是添加到文件夹中,因为每个文件名都是动态生成的。

我遇到了这个“删除附加文件”默认错误,可能是我的问题的解决方案。

然而,在阅读描述时,“目的地”有点模糊。文档在这里

当 True 指示 Web 部署从目标中删除不在源包中的文件时

“目的地”是否与物理路径有关?

4

1 回答 1

0

的,目的地将是物理路径设置的值。

我认为对您有价值的设置是文件比较方法。它指示将进行比较以确定哪些文件(如果有)应由包更新的算法。

链接指向一篇博客文章,其中讨论了时间戳和校验和算法。我在下面包含了这篇文章的一部分。

时间戳而不是校验和

在 Octopus 3.0 中,我们决定将 Checksum 作为与 WebDeploy 同步文件的默认(也是唯一选择)。使用校验和我们只会部署实际更改的文件,而不需要任何特殊配置。这减少了后续部署到同一 Web 应用程序所需的时间和带宽。这对于中等规模的应用程序非常有效,但正如我们发现的那样,对于大型应用程序来说,它变得异常缓慢且不可靠。

如果您发现自己处于这种情况,您可以切换到使用时间戳进行文件比较,而不是使用 Octopus Deploy 3.3.3 或更高版本的校验和。

时间戳

如果您有任何现有的 Azure Web App 步骤,则需要更新它们以使用时间戳并创建新版本。默认情况下,您创建的任何新 Azure Web 应用程序步骤都将使用时间戳,但如果更适合您的需求,您始终可以切换到校验和。

如果您更喜欢校验和,我们计划升级到 Microsoft.Web.Deployment.3.6.0,其中修复了一些用于校验和比较的错误。

保留时间戳

使用时间戳进行文件比较的缺点是可靠性——你很容易得到误报——这就是校验和如此吸引人的原因。如果您使用的是 NuGet 包,则文件的时间戳在解包时将丢失,这意味着每个文件看起来都是较新的,并且无论它是否已更改都会上传 - 更多详细信息。要解决此问题,请考虑使用 zip 包 - 我们进行了自动化测试,证明时间戳通过您的部署端到端保留。

于 2019-08-07T01:26:15.780 回答