How to change the value of attribute in appSettings section with Web.config transformation How to change the value of attribute in appSettings section with Web.config transformation asp.net asp.net

How to change the value of attribute in appSettings section with Web.config transformation


You want something like:

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

See Also: Web.config Transformation Syntax for Web Application Project Deployment


Replacing all AppSettings

This is the overkill case where you just want to replace an entire section of the web.config. In this case I will replace all AppSettings in the web.config will new settings in web.release.config. This is my baseline web.config appSettings:

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

Now in my web.release.config file, I am going to create a appSettings section except I will include the attribute xdt:Transform=”Replace” since I want to just replace the entire element. I did not have to use xdt:Locator because there is nothing to locate – I just want to wipe the slate clean and replace everything.

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

Note that in the web.release.config file my appSettings section has three keys instead of two, and the keys aren’t even the same. Now let’s look at the generated web.config file what happens when we publish:

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

Just as we expected – the web.config appSettings were completely replaced by the values in web.release config. That was easy!


If you want to make transformation your app setting from web config file to web.Release.config,you have to do the following steps.Let your web.config app setting file is this-

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

Now here is the web.Release.config for the transformation.

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

This will transform the value of K1 to the new value in realese Mode.