使用Octopus部署将应用程序设置添加到web.config

问题描述:

我们已经开始为我们的ASP.NET Mvc 5网站使用Octopus Deploy,并且替换web.config值工作得很好,但有没有办法将值添加到web.config那不存在?使用Octopus部署将应用程序设置添加到web.config

我们需要这样做的原因是我们有一个可插拔的体系结构,有些项目没有被解决方案引用,这些额外的项目被封装为NuGet,并且如果机器处于特定角色还有一个额外的步骤这些额外的软件包已部署,应用程序在启动时会加载这些dll。

但是我们部署的标准web.config没有这些设置,如果不需要,我们不想添加额外的值,因此能够在部署时向web.config添加更多appsetting是理想的。

+0

你能解释你如何更新web.config中的值与章鱼? – Campinho 2015-10-08 21:46:13

您可以通过两种方式在Octopus Deploy中执行此操作。

如果您知道要提前添加的部分,可以使用Conditionalsweb config transformations一起包含或排除部分。

如果您需要做更动态的事情,最好的方法是使用deploy.ps1 PowerShell脚本来添加节点。像这样的事情会做到这一点。

$filePath = [path to my web.config file] 

# load the XML from the web.config 
$xml = New-Object XML 
$xml = [xml](Get-Content $filePath) 

$setting = $xml.CreateElement('add') 
$setting.SetAttribute('key','Name') 

$xml.configuration.appSettings.AppendChild($setting) 

$xml.Save($filePath) 
+0

感谢您的帮助,这段代码帮助我编写了我们需要的powershell脚本。 – user351711 2014-11-05 05:55:12