xml - Web.config transform removes first setting despite name locator -


i have web.config transform severely misbehaving. web.config looks this:

<configuration>   <configsections>  </configsections>   <appsettings>  </appsettings>   <connectionstrings>  </connectionstrings>   <system.web>  </system.web>   <runtime>  </runtime>   <system.webserver>  </system.webserver>   <entityframework>  </entityframework>   <elmah>  </elmah>   <applicationsettings>     <mysite.properties.settings>       <setting name="commandtimeout" serializeas="string">         <value>180</value>       </setting>       <setting name="loginserverurl" serializeas="string">         <value>mydevsite.com</value>       </setting>     </mysite.properties.settings>   </applicationsettings> </configuration> 

when i'd think should able with:

<mysite.properties.settings>   <setting name="loginserverurl" serializeas="string" xdt:transform="replace" xdt:locator="match(name)">     <value>myqasite.com</value>   </setting> </mysite.properties.settings> 

but when this, replaces first setting (command timeout) , leaves second 1 there have 2 loginserverurl settings , no command timeout!

the way can transform mydevsite.com myqasite.com create transform this:

<?xml version="1.0" encoding="utf-8"?>  <configuration xmlns:xdt="http://schemas.microsoft.com/xml-document-transform">   <system.web>     <compilation xdt:transform="removeattributes(debug)" />     <customerrors mode="off" xdt:transform="replace">       <error statuscode="404" redirect="~/error/error404"/>     </customerrors>   </system.web>   <applicationsettings>     <mysite.properties.settings>       <setting name="loginserverurl" xdt:transform="remove" xdt:locator="match(name)"/>       <setting name="commandtimeout" xdt:transform="insert" serializeas="string">         <value>180</value>       </setting>       <setting name="loginserverurl" serializeas="string" xdt:transform="replace" xdt:locator="match(name)">         <value>myqasite.com</value>       </setting>     </mysite.properties.settings>   </applicationsettings> </configuration> 

am doing wrong here?

using configuration (in app.config file), following (in app.debug.config file) worked me:

the thing had add <applicationsettings> tag wrap <mysite.properties.settings>

<?xml version="1.0"?> <!-- more information on using app.config transformation visit http://go.microsoft.com/fwlink/?linkid=125889 --> <configuration xmlns:xdt="http://schemas.microsoft.com/xml-document-transform">   <applicationsettings>     <mysite.properties.settings>       <setting name="loginserverurl" serializeas="string" xdt:transform="replace" xdt:locator="match(name)">         <value>myqasite.com</value>       </setting>     </mysite.properties.settings>   </applicationsettings> </configuration> 

i'm using "configuration transformation" vs extension create nested files me:

project file structure


Comments