Tarefas avançadas usando a transformação Web.Config

Alguém sabe se existe uma maneira de "transformar" seções específicas de valores em vez de substituir o valor inteiro ou um atributo?

Por exemplo, tenho várias entradas appSettings que especificam os URLs para diferentes serviços da web. Essas entradas são um pouco diferentes no ambiente de desenvolvimento e no ambiente de produção. Alguns são menos triviais que outros

<!-- DEV ENTRY -->
<appSettings>
 <add key="serviceName1_WebsService_Url" value="http://wsServiceName1.dev.domain.com/v1.2.3.4/entryPoint.asmx" />
 <add key="serviceName2_WebsService_Url" value="http://ma1-lab.lab1.domain.com/v1.2.3.4/entryPoint.asmx" />
</appSettings>

<!-- PROD ENTRY -->
<appSettings>
 <add key="serviceName1_WebsService_Url" value="http://wsServiceName1.prod.domain.com/v1.2.3.4/entryPoint.asmx" />
 <add key="serviceName2_WebsService_Url" value="http://ws.ServiceName2.domain.com/v1.2.3.4/entryPoint.asmx" />
</appSettings>

Observe que na primeira entrada, a única diferença é".dev" de ".prod". Na segunda entrada, o subdomínio é diferente:"ma1-lab.lab1" de"ws.ServiceName2"

Até agora, eu sei que posso fazer algo assim na Web.Release.Config:

<add xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)" key="serviceName1_WebsService_Url" value="http://wsServiceName1.prod.domain.com/v1.2.3.4/entryPoint.asmx" />
<add xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)" key="serviceName2_WebsService_Url" value="http://ws.ServiceName2.domain.com/v1.2.3.4/entryPoint.asmx" />

No entanto, toda vez que a versão desse serviço da web é atualizada, eu também precisaria atualizar o Web.Release.Config, o que anula o objetivo de simplificar minhas atualizações do web.config.

Sei que também poderia dividir esse URL em seções diferentes e atualizá-los de forma independente, mas prefiro ter tudo em uma única chave.

Examinei as transformações disponíveis no web.config, mas nada parece ser voltado para o que estou tentando realizar.

Estes são os sites que estou usando como referência:

Blog de Vishal Joshi, Ajuda do MSDNeVídeo do Channel9

Qualquer ajuda seria muito apreciada!

-D

questionAnswers(2)

yourAnswerToTheQuestion