visual studio obtener net modificar example conexion cadena asp app c# asp.net visual-studio connection-string web-config-transform

c# - studio - web.config transform-elimina comentarios de la sección de cadena de conexión



web config transform visual studio 2017 (4)

En Visual Studio 2013, puede tener varios archivos Web.config.

Además, cuando creas un nuevo proyecto, VS crea 2 para ti: Web.Debug.config y Web.Release.config. De esa manera, puede tener un Web.Config diferente para su proyecto de depuración y para su proyecto de lanzamiento

Almaceno varias cadenas de conexión diferentes en mi web.config para desarrollo y pruebas. Todos menos uno están comentados, así que puedo cambiar la información según sea necesario.

Cuando publique, me gustaría reemplazar todo (incluidos los comentarios) en el nodo connectionStrings con esto:

<add name="myDb" connectionString="Data Source={SERVER};Initial Catalog=ManEx;User Id={USER};Password={PASSWORD};" providerName="System.Data.SqlClient" /> <!--<add name="myDb" connectionString="Data Source={SERVER};Initial Catalog=ManEx;Integrated Security=True" providerName="System.Data.SqlClient" />-->

Sé cómo cambiar la cadena activa con esto:

<add name="myDb" connectionString="Data Source={SERVER};Initial Catalog=ManEx;User Id={USER};Password={PASSWORD};" providerName="System.Data.SqlClient" xdt:Transform="Add" xdt:Locator="Match(name)"/>

Pero no sé cómo borrar los comentarios que no quiero y agregar el comentario que sí quiero.

¿Algunas ideas?


En lugar de transformar la cadena, o usar "Eliminar" e "Insertar", limpie la sección e intente usar "Reemplazar".

Por ejemplo:

<connectionStrings xdt:Transform="Replace"> <add name="myDb" connectionString="Data Source={SERVER};Initial Catalog=ManEx;User Id={USER};Password={PASSWORD};" providerName="System.Data.SqlClient" /> </connectionStrings>

Puede configurar esta sección exactamente como lo desee, incluso si eso significa que agrega nuevos comentarios.


Lo que hice en base a esta respuesta fue lo siguiente:

  • Se eliminó la sección connectStrings existente en Web.config que contiene cadenas de conexión comentadas utilizadas durante el tiempo de depuración;
  • Se volvió a agregar la sección connectionStrings con la cadena de conexión correcta que se usará cuando se despliegue la aplicación.

Así que en tu archivo de transformación Web.config tienes algo como esto:

<!-- Removes the existing connectionStrings section which contains internal connection strings used for debugging --> <connectionStrings xdt:Transform="Remove"> </connectionStrings> <!-- Re-adding the existing connectionStrings section --> <connectionStrings xdt:Transform="Insert"> <add name="MyConnectionStringName" connectionString="Data Source=CLUSTERSQL;Initial Catalog=MyDatabase;Integrated Security=True;multipleactiveresultsets=True" providerName="System.Data.SqlClient" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings>


Si necesita agregar / insertar / establecer atributos dentro de una cadena de conexión reemplazada (por ejemplo, si usa implementaciones), puede anidar las transformaciones para eliminar los comentarios y reemplazar los atributos:

<connectionStrings xdt:Transform="Replace"> <add name="connectionDatabase" connectionString="#{ConnectionString}" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" /> </connectionStrings>