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 ** 이름 **을 log4net 구성에 넣고 web.config에서 값을 검색합니다 - 둘 모두에 대해 'MainConnectionStringValue'를 사용하고있는 것처럼 보이십니까? – stuartd
안녕하세요, 제가 그 일을 어떻게 하죠? 예 MainConnectionStringValue는 두 연결 문자열 모두에 사용해야합니다. – Sjharrison
앱 설정 섹션에 연결 문자열이 있다는 것을 알지 못했지만, 이것은''섹션에있는 경우에만 작동합니다. 미안합니다. –
stuartd