0
在我的CI編譯期間,我使用PowerShell編輯Web.Config文件中的一些值。使用powershell編輯Web.Config文件中的Log4Net屬性
我已經使用下面的代碼來做到這一點;
#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 } }
我收到的錯誤消息通常是'The property |'connectionString |'在這個對象上找不到。驗證該屬性是否存在,可以設置'
任何人都知道如何正確編輯connectionString屬性?
不是一個答案,但你可以設置connectionString ** Name **在log4net配置中,它將從web.config中檢索值 - 因爲您似乎對兩者都使用了「MainConnectionStringValue」? – stuartd
嗨@stuartd,我該怎麼做呢?是的,MainConnectionStringValue應該用於兩個連接字符串。 – Sjharrison
我沒有注意到你在應用程序設置部分有你的連接字符串,只有當你在''部分有它時才能使用。對於那個很抱歉。 –
stuartd