web-dev-qa-db-ja.com

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の値を置き換える必要があります。

236
dragonfly

次のようなものが必要です:

<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変換構文

420
Joe

Web設定ファイルからweb.Release.configへのアプリ設定の変換を行う場合は、次の手順を実行する必要があります。 web.configアプリの設定ファイルをこれにしましょう-

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

これが、変換用のweb.Release.configです。

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

これにより、realeseモードでK1の値が新しい値に変換されます。

7
Debendra Dash

すべてのAppSettingsを置き換える

これは、web.configのセクション全体を置き換えるだけの過剰なケースです。この場合、web.configのすべてのAppSettingsをweb.release.configの新しい設定に置き換えます。これは私のベースラインweb.config appSettingsです:

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

Web.release.configファイルにappSettingsセクションを作成します。ただし、要素全体を置き換えるだけなので、属性xdt:Transform =” Replace”を含めます。 xdt:Locatorを使用する必要はありませんでした。場所を特定するものがないため、スレートをきれいに拭いてすべてを交換したいだけです。

<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の値に完全に置き換えられました。簡単でした!

5
Joe