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 enWeb.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>