如何使用八达通更新 web.config 中的值?

How update a value in the web.config using Octopus?

我需要在部署期间将我的 web.config 文件中的值更新为 true,并在部署结束时将其改回 false。

在部署期间初始设置变量有两个选项。 first 是你可以设置一个转换文件以你的 web.config 文件为目标(或直接以 web.config 为目标),然后在转换文件中,引用八达通像这样的变量 Value="#{valueNameInOctopus}".

在 Octopus 的变量选项卡上,您需要设置您希望它在部署期间具有的变量名称和值。然后,在进程选项卡的 'configure features' 部分中,启用 'Substitute variables in files' 的部署功能,并在目标文件列表中包含转换文件或 web.config 文件的名称。

部署后将值改回有点棘手,因为没有另一个内置转换步骤,但您可以编写一个 post-部署 powershell script that uses an XML API to do your transforms, per the suggestion at the end of these Octopus docs on configuration。用于在部署期间设置变量值的 second 选项以同样的方式进行,但作为预部署脚本。为了保持一致性,我建议这样做。

我不确定为什么在部署期间您需要配置值不同于 post-部署,但如果是因为您的 Octopus 服务器上有一些独特的情况,您想要这样做那里有一个东西,但 Tentacles 上还有其他东西,您可能会考虑在您的 Octopus 服务器上设置一个 Tentacle 并改为对该环境进行特殊部署。