在我的CI构建期间,我使用PowerShell编辑Web.Config文件中的某些值。
我使用以下代码来实现此目的;
#Open web.config
$xml = [xml](get-content($ConfigurationFile))
$conf = $xml.configuration
$conf.appSettings.add | foreach { if ($_.key -eq "ApplicationRootUri") { $_.value = $ApplicationSettingValue } }
$conf.appSettings.add | foreach { if ($_.key -eq "connectionString") { $_.value = $MainConnectionStringValue } }
#Save Config
$xml.Save($ConfigurationFile)
但是我需要更改的下一个属性不在配置文件的AppSettings部分中。它位于Log4App;
<log4net>
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="VALUE_I_WANT_TO_CHANGE" />
</log4net>
到目前为止,我已经尝试过多种方法来改变这个价值而没有运气。
我在上面的代码中停滞不前;
$confLog = $conf.log4net.appender
$$confLog.add | foreach { if ($_.name -eq "AdoNetAppender") { $_.connectionString.value = $MainConnectionStringValue } }
我收到的错误消息通常是&#39;属性|&#39; connectionString |&#39;在这个对象上找不到。验证该属性是否存在且可以设置&#39;
任何人都知道如何正确编辑connectionString属性?
答案 0 :(得分:1)
对于任何有兴趣的人来说,我离这么远很近
以下是我最终为我工作的内容
$confLog = $conf.log4net.appender
$confLog | foreach { if ($_.name -eq "AdoNetAppender") { $_.connectionString.Value = $MainConnectionStringValue } }