Estábamos teniendo varios problemas al hacer deploy en los distintos ambientes porque siempre nos quedaba alguna setting sin modificar. Así que pensé que sería bueno automatizar esa tarea para evitar problemas.
La idea es simple. Uso web.config transformations para cambiar el archivo al ambiente que corresponda. En realidad sólo cambio a dónde apunta el web.config.
Armé la siguiente estructura del proyecto:
La configuración de QA la armé como una nueva build configuration.
La carpeta Configs está en el root del proyecto. Vean que tengo una configuración distinta por cada ambiente.
El Web.config me quedó así:
Y los Web.*.config así:
Noten la diferencia en los configSource, ahí está la magia.
A partir de esta estructura podemos obtener publish automáticos simplemente compilando para el ambiente que lo necesitemos. También se puede automatizar con una tarea de compilación de MSBuild y se puede armar un .bat para tener builds de un click por ambiente =D.
Referencias:




