我试图找出一个办法,通过更新configSource在web.config中的appSettings元素来更新我的针对不同环境的web.config。
下面是我知道如何做到这一点的方式。
$xml.get_DocumentElement().appSettings.configSource = $replaced_test
问题是,我想一个基本的脚本,我可以在不同的节点传递给我要改剧本和更新,但我不知道该怎么做。
举例来说,我希望能够调用PowerShell脚本这样
changeWebConfig.ps1 nodeToChange newValueofNode
我希望这是不够清楚。
这是我现在的代码。
$webConfigPath = "C:\web.config"
# Get the content of the config file and cast it to XML
$xml = [xml](get-content $webConfigPath)
#this was the trick I had been looking for
$root = $xml.get_DocumentElement()."system.serviceModel".client.configSource = $replace
# Save it
$xml.Save($webConfigPath)
我是有问题是配置节点
我不得不把它从改变
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
这
<configuration>
我不知道如何找到与配置节点的节点在它的原单尚状态,但我越来越近。
function Set-ConfigAppSetting
([string]$PathToConfig=$(throw 'Configuration file is required'),
[string]$Key = $(throw 'No Key Specified'),
[string]$Value = $(throw 'No Value Specified'))
{
if (Test-Path $PathToConfig)
{
$x = [xml] (type $PathToConfig)
$node = $x.SelectSingleNode("//client[@configSource]")
$node.configSource = $Value
$x.Save($PathToConfig)
}
}
set-configappsetting "c:\web.config" CurrentTaxYear ".\private$\dinnernoworders" -confirm