次の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.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の値が新しい値に変換されます。
すべての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の値に完全に置き換えられました。簡単でした!