使用Octopus Deploy进行Web.Config转换

时间:2014-04-29 11:04:40

标签: octopus-deploy web.config-transform

我想在Octopus Deploy中应用web.config转换,但仅适用于生产环境。

我不想为所有其他环境创建单独的配置。

目前我正在使用以下自定义表达式,但它不适用转换

enter image description here

2 个答案:

答案 0 :(得分:6)

您是否专门尝试更改项目的web.config文件中的键/值对? XML转换完全是一个不同的功能。请阅读此处的文档:http://docs.octopusdeploy.com/display/OD/Configuration+files。该文档还将提及有关转换的MS文档:http://msdn.microsoft.com/en-us/library/dd465326.aspx

话虽如此,看起来你想要改变Octopus中配置变量的值。八达通绝对可以做到;特别是在针对特定环境时。转到项目中的“变量”选项卡。在变量选项卡中,“名称”列指的是您要在web.config或app.config中更改的值。这是文件中显示的正确名称,因此您无需直接在文件中更改任何内容即可匹配。

该值当然是要出现的值。然后,“变量范围”列将允许您指定环境,服务器,角色甚至是流程中的步骤(我的未显示,因为这是一个空白项目)。

enter image description here

修改 在配置文件上阅读此documentation from Octopus Deploy(进一步向下是Web转换)。 如果您尝试删除调试模式标志,则看起来您的转换自定义表达式不正确。根据您输入的表达式判断,它将呈现为“TrueProduction.Production”,它实际上不描述任何类型的转换。您应该尝试这样做:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>
</configuration>

如果您只想将其应用于Production,请确保将生产Web配置文件设置为:Web.Production.config。确保Web..Config与Octopus中的环境名称匹配。同样,它位于Octopus Deploy站点的文档中。

答案 1 :(得分:0)

您需要做的是创建一个Web.Production.config转换文件,其中&#34;生产&#34;是您的生产环境的名称。在Octopus Deploy任务中启用XML转换后,Octopus将仅在将其部署为生产环境时应用生产转换。如果您创建Web.Release.config转换文件而不是特定的环境文件,这可能也是如此,但我不确定。