No sobrescribir el file de configuration en Azure usando GIT

Tengo una aplicación web alojada en Azure.
Actualmente hay algunos sitios web que usan el mismo código que se recupera de bitbucket.
La única diferencia entre las diversas instalaciones es que tienen una cadena de connection diferente en los files web.config que se dirigen a diferentes bases de datos.

Cada vez que estoy solucionando un error, cargo mi nuevo código en bitbucket y Azure obtiene este código de BitBucket.
Actualmente hay 5 aplicaciones que obtienen el mismo código y cada vez que cargo un código nuevo en bitbucket, tengo que editar manualmente el file web.config en Azure para apuntar a la database correcta para cada aplicación.

¿Hay alguna manera de indicarle a Azure que no sobrescriba el file web.config cuando recibe el nuevo código de Bitbucket?

En la posibilidad es no la versión web.config , sino un file de plantilla web.config.tpl y un file de valores (con valores para cada aplicación)

Luego, puede usar un controller de filter de contenido , usando la statement .gitattributes .

mancha (image de " Personalizar Git – Atributos de Git ", del " Libro de Pro Git ")

El web.config real generado permanece ignorado (por .gitignore ).
Eso significa que su tree de trabajo real no se "ensucia".

El script de borrones selecciona el file de valores correctos y genera el web.config correcto en function de la plantilla en la que se aplica el script de borrones durante la git checkout .

La responsabilidad de cambiar la configuration basada en el website que está implementando podría estar en el lanzamiento. VSTS admite la liberación de software desde una fuente como BitBucket a Azure. Crea una count de VSTS. Crea un proyecto dentro de la count. Crea una nueva compilation y configura BitBucket como fuente. Cree un lanzamiento para implementar la aplicación web en cada uno de los cinco lugares. Use las variables para establecer una connection diferente para cada aplicación web.

¿Por qué no es necesario codificar las cadenas de connection en web.config ? Solo retíralo en tu código desde Configuración de la aplicación.

Desde https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/ :

Para las aplicaciones .NET, estas cadenas de connection se inyectan en la configuration de .NET connectionStrings en el time de ejecución, anulando las inputs existentes donde la key es igual al nombre de la database vinculada.

 using System.Configuration; // Define AzureSQLConnStr in Portal -> Web App -> Application Settings string AzureSQLConnStr = ConfigurationManager.ConnectionStrings["AzureSQLConnStr"]; 

Configuración de la aplicación / Cadenas de connection definidas en el Portal app.config los valores de web.config / app.config en el time de ejecución.