Asp.net mvc 使用Octopus Deploy将应用程序设置添加到web.config

Asp.net mvc 使用Octopus Deploy将应用程序设置添加到web.config,asp.net-mvc,deployment,octopus-deploy,Asp.net Mvc,Deployment,Octopus Deploy,我们已经开始在我们的ASP.NET Mvc 5网站上使用Octopus Deploy,替换web.config值效果非常好,但是有没有办法向web.config添加不存在的值 我们需要这样做的原因是,我们有一个可插拔的体系结构,一些项目没有被解决方案引用,这些额外的项目打包为NuGet,还有一个额外的步骤,如果机器处于特定角色,则部署这些额外的包,并且应用程序在启动时加载DLL 但是,我们部署的标准web.config中没有这些设置,如果不需要,我们也不想添加其他值,因此在部署时向web.con

我们已经开始在我们的ASP.NET Mvc 5网站上使用Octopus Deploy,替换web.config值效果非常好,但是有没有办法向web.config添加不存在的值

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


但是,我们部署的标准web.config中没有这些设置,如果不需要,我们也不想添加其他值,因此在部署时向web.config添加更多appsettings将是理想的选择。

在Octopus deploy中有两种方法可以做到这一点

如果您提前知道要添加的节,则可以使用它将节与一起包括或排除

如果需要执行更动态的操作,最好的方法是使用
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)

有两种方法可以在Octopus Deploy中实现这一点

如果您提前知道要添加的节,则可以使用它将节与一起包括或排除

如果需要执行更动态的操作,最好的方法是使用
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)

感谢您的帮助,此代码段帮助我编写了所需的powershell脚本。感谢您的帮助,此代码段帮助我编写了所需的powershell脚本。您能否解释如何使用八达通更新web.config中的值?您能否解释如何使用八达通更新web.config中的值?