programing

Web.config 변환을 사용하여 appSettings 섹션에서 속성 값을 변경하는 방법

newstyles 2023. 4. 24. 22:57

Web.config 변환을 사용하여 appSettings 섹션에서 속성 값을 변경하는 방법

다음 Web.config appSettings 파일을 변환할 수 있습니까?

<appSettings>
    <add key="developmentModeUserId" value="00297022" />
    <add key="developmentMode" value="true" />
    /* other settings here that should stay */
</appSettings>

이런 식으로 만들 수 있습니다.

<appSettings>
    <add key="developmentMode" value="false" />
    /* other settings here that should stay */
</appSettings>

따라서 키 developmentModeUserId를 제거하고 키 developmentMode 값을 대체해야 합니다.

다음과 같은 것이 필요합니다.

<appSettings>
  <add key="developmentModeUserId" xdt:Transform="Remove" xdt:Locator="Match(key)"/>
  <add key="developmentMode" value="false" xdt:Transform="SetAttributes"
          xdt:Locator="Match(key)"/>
</appSettings>

참고 항목: Web 응용 프로그램프로젝트 전개를 위한 Web.config 변환 구문

모든 AppSettings 교체

이것은 web.config 섹션 전체를 교환하는 오버킬의 경우입니다.이 경우 web.config의 모든 AppSettings를 교체합니다.web.release.config의 새로운 설정이 됩니다.이것은 베이스라인 web.config app Settings

<appSettings>
  <add key="KeyA" value="ValA"/>
  <add key="KeyB" value="ValB"/>
</appSettings>

이제 web.release.config 파일에서 xdt 속성을 포함하는 경우를 제외하고 appSettings 섹션을 만듭니다.트랜스폼="전체 요소를 교체하고 싶기 때문에 "Replace"를 선택합니다.xdt를 사용할 필요가 없었습니다.로케이터는 찾을 것이 없기 때문에 모든 것을 깨끗이 지우고 교체하고 싶을 뿐입니다.

<appSettings xdt:Transform="Replace">
  <add key="ProdKeyA" value="ProdValA"/>
  <add key="ProdKeyB" value="ProdValB"/>
  <add key="ProdKeyC" value="ProdValC"/>
</appSettings>

web.release.config 파일에서 내 appSettings 섹션에는 2개가 아닌 3개의 키가 있으며 키는 동일하지 않습니다.이제 생성된 web.config 파일을 공개하면 어떻게 되는지 살펴보겠습니다.

<appSettings>
   <add key="ProdKeyA" value="ProdValA"/>
   <add key="ProdKeyB" value="ProdValB"/>
   <add key="ProdKeyC" value="ProdValC"/>
 </appSettings>

예상대로 web.config appSettings는 web.release config 값으로 완전히 대체되었습니다.쉬웠어!

웹 구성 파일에서 웹으로 앱 설정을 변환하고 싶은 경우.Release.config는 다음 절차를 수행해야 합니다.web.config 앱 설정 파일은 다음과 같습니다.

<appSettings>
     <add key ="K1" value="Debendra Dash"/>
  </appSettings>

여기 웹이 있습니다.변환용 Release.config.

<appSettings>
    <add key="K1" value="value dynamicly from Realease"
       xdt:Transform="SetAttributes"
          xdt:Locator="Match(key)"   
         />
  </appSettings>

그러면 K1 값이 리얼 모드에서의 새로운 값으로 변환됩니다.

나는 변환이 필요 이상으로 많은 정보를 갖는 것을 좋아하지 않는다.그래서 나는 키를 다시 쓰는 대신 조건과 의도를 간단히 말한다.적어도 IMO는 이렇게 하면 의도를 알 수 있습니다. 그리고 저는 모든 것을 넣으려고 노력합니다.xdt우선 독자에게 알리는 속성은 변환이며 정의되는 새로운 것이 아닙니다.

<appSettings>
  <add xdt:Locator="Condition(@key='developmentModeUserId')" xdt:Transform="Remove" />
  <add xdt:Locator="Condition(@key='developmentMode')" xdt:Transform="SetAttributes"
       value="false"/>
</appSettings>

위의 경우 첫 번째 요소가 요소를 제거하는 것을 훨씬 쉽게 알 수 있습니다.두 번째는 속성 설정입니다.여기서 정의한 Atribute를 설정 또는 바꿉니다.이 경우, 이것은 간단하게 설정됩니다.value로로 합니다.false.

언급URL : https://stackoverflow.com/questions/11033001/how-to-change-the-value-of-attribute-in-appsettings-section-with-web-config-tran