¿Alguien sabe si hay una forma de "transformar" secciones específicas de valores en lugar de reemplazar el valor completo o un atributo?Tareas avanzadas utilizando la transformación Web.Config
Por ejemplo, tengo varias entradas de AppSettings que especifican las URL para diferentes servicios web. Estas entradas son ligeramente diferentes en el entorno de desarrollo que en el entorno de producción. Algunos son menos trivial que otros
<!-- 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>
en cuenta que una entrada en el puño, la única diferencia es ".dev" de ".prod". En la segunda entrada, el subdominio es diferente: "MA1-lab.lab1" de "ws.ServiceName2"
Hasta ahora, sé que puedo hacer algo como esto en el 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" />
Sin embargo, cada vez que la versión para ese servicio web se actualiza, tendría que actualizar el Web.Release.Config, así, que contradice el objetivo de simplfying mis actualizaciones web.config.
Sé que también podría dividir esa URL en diferentes secciones y actualizarlas de forma independiente, pero prefiero tenerlo todo en una clave.
He revisado la web.config disponible Transformaciones pero nada parece estar orientado hacia lo que intento lograr.
Estos son los sitios web que estoy usando como referencia:
Vishal Joshi's blog, MSDN Help y Channel9 video
Cualquier ayuda sería muy apreciada!
-D
Sayed, ¡esto es asombroso! muchas gracias por tomarse el tiempo para responder a esto, estaba empezando a perder la esperanza :) –
Santo creeps, ¡esto es IMPRESIONANTE! Muchas gracias, amigo ... esto es exactamente lo que necesito :) –
Es tan horrible que no hay una manera más simple de hacer esto. :(Gracias por esto, sin embargo, fue muy útil. –