Web.Config Debug / Release

Sé que web.config en Visual Studio 2010 ofrece la capacidad de cambiar de las bases de datos del modo de depuración al modo de lanzamiento.

Aquí está mi Web.Release.config:

           

Aquí está mi código Web.Debug.config:

            

Y este es mi código Web.config:

                                 

Cuando publico mi proyecto, no hay nada que se muestre en mi archivo Web.config.it ¿No se muestra la cadena de conexión de Live Database?

Las transformaciones web.config que forman parte de Visual Studio 2010 usan XSLT para “transformar” el archivo web.config actual en su versión .Debug o .Release.

En sus archivos .Debug / .Release, debe agregar el siguiente parámetro en sus campos de cadena de conexión:

 xdt:Transform="SetAttributes" xdt:Locator="Match(name)" 

Esto hará que cada línea de cadena de conexión encuentre el nombre coincidente y actualice los atributos en consecuencia.

Nota: No tendrá que preocuparse por actualizar su parámetro providerName en los archivos de transformación, ya que no cambian.

Aquí hay un ejemplo de una de mis aplicaciones. Aquí está la sección del archivo web.config:

    

Y aquí está la sección web.config.release haciendo la transformación adecuada:

    

Una nota adicional: las transformaciones solo ocurren cuando publicas el sitio, no cuando simplemente lo ejecutas con F5 o CTRL + F5. Si necesita ejecutar una actualización localmente contra una configuración dada, deberá cambiar manualmente su archivo Web.config para esto.

Para obtener más detalles, puede ver la documentación de MSDN

https://msdn.microsoft.com/en-us/library/dd465326(VS.100).aspx

Es posible usar el objective de comstackción ConfigTransform disponible como paquete Nuget – https://www.nuget.org/packages/CodeAssassin.ConfigTransform/

Todos los archivos de transformación “web. * .Config” se transformarán y generarán como una serie de archivos “web. *. Config.transformed” en el directorio de salida de comstackción, independientemente de la configuración de comstackción elegida.

Lo mismo se aplica a los archivos de transformación “app. *. Config” en proyectos que no son web.

y luego agregar el siguiente objective a su *.csproj .

    

Publicar una respuesta ya que esta es la primera publicación de Stackoverflow que aparece en Google sobre el tema.

Para hacer que la transformación funcione en desarrollo (usando F5 o CTRL + F5) dejo ctt.exe ( https://ctt.codeplex.com/ ) en la carpeta de paquetes (packages \ ConfigTransform \ ctt.exe).

Luego registro un evento previo o posterior a la construcción en Visual Studio …

 $(SolutionDir)packages\ConfigTransform\ctt.exe source:"$(ProjectDir)connectionStrings.config" transform:"$(ProjectDir)connectionStrings.$(ConfigurationName).config" destination:"$(ProjectDir)connectionStrings.config" $(SolutionDir)packages\ConfigTransform\ctt.exe source:"$(ProjectDir)web.config" transform:"$(ProjectDir)web.$(ConfigurationName).config" destination:"$(ProjectDir)web.config" 

Para las transformaciones utilizo la extensión SlowCheeta VS ( https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5 ).

Si vas a reemplazar todas las cadenas de conexión por noticias para el entorno de producción, puedes simplemente reemplazar todas las cadenas de conexión por las de producción con esta syntax:

       .... 

La información para esta respuesta proviene de esta respuesta y esta publicación en el blog .

aviso : como otros ya lo explicaron, esta configuración se aplicará solo cuando la aplicación no publique cuando la esté ejecutando / depurándola (presionando F5).