使用Octopus Deploy进行Web.Config转换

6
我想在Octopus Deploy中应用web.config转换,但仅适用于生产环境。
我不想为所有其他环境创建单独的配置文件。
目前,我正在使用以下自定义表达式,但它不适用于转换。
2个回答

6
您是想要在项目的 web.config 文件中更改键/值对吗?XML 转换是完全不同的功能。请阅读此处的文档:http://docs.octopusdeploy.com/display/OD/Configuration+files。该文档还将提到有关转换的 MS 文档:http://msdn.microsoft.com/en-us/library/dd465326.aspx 话虽如此,看起来您是想要更改 Octopus 中的配置变量的值。Octopus 肯定可以做到这一点;特别是当目标环境被指定时。进入项目的 "Variables" 选项卡。在变量选项卡中,“Name”列是您要更改的值在 web.config 或 app.config 中的确切名称。这正是它在文件中出现的名称,所以您不需要直接更改文件以匹配。
值当然是要出现的值。然后,变量范围列将允许您指定环境、服务器、角色甚至是过程中的步骤(我的没有出现,因为这是一个空白项目)。
编辑: 阅读这个来自 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>

如果你只想将其应用于生产环境,请确保你的生产Web配置文件名为: Web.Production.config。确保 Web..Config 与 Octopus 中的环境名称匹配。再次强调,这些细节在 Octopus 部署网站的文档中有详细说明。


1
基本上,我只想在生产环境中关闭调试模式,而不必为所有环境创建单独的web.config转换。 - MrBliz

0
你需要做的是创建一个名为“Production”的Web.Production.config转换文件,其中“Production”是你的生产环境的名称。一旦你在Octopus Deploy任务中启用了XML转换,Octopus将仅在部署到生产环境时应用生产转换。如果你创建一个Web.Release.config转换文件而不是特定的环境文件,这也可能是正确的,但我不确定。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接