Substituindo todas as AppSettings
Este é o caso de exagero em que você deseja substituir apenas uma seção inteira do web.config. Nesse caso, substituirei todos os AppSettings no web.config e novas configurações no web.release.config. Esta é a minha linha de base web.config appSettings:
<appSettings>
<add key="KeyA" value="ValA"/>
<add key="KeyB" value="ValB"/>
</appSettings>
Agora, no meu arquivo web.release.config, vou criar uma seção appSettings, exceto que incluirei o atributo xdt: Transform = ”Replace”, pois quero substituir apenas o elemento inteiro. Não precisei usar o xdt: Locator porque não há nada para localizar - só quero limpar a lousa e substituir tudo.
<appSettings xdt:Transform="Replace">
<add key="ProdKeyA" value="ProdValA"/>
<add key="ProdKeyB" value="ProdValB"/>
<add key="ProdKeyC" value="ProdValC"/>
</appSettings>
Observe que no arquivo web.release.config, a seção appSettings possui três chaves em vez de duas, e as chaves não são iguais. Agora, vejamos o arquivo web.config gerado, o que acontece quando publicamos:
<appSettings>
<add key="ProdKeyA" value="ProdValA"/>
<add key="ProdKeyB" value="ProdValB"/>
<add key="ProdKeyC" value="ProdValC"/>
</appSettings>
Assim como esperávamos - o web.config appSettings foi completamente substituído pelos valores em web.release config. Essa foi fácil!