2011-08-23 13 views
17

He config siguientes para mi mail:¿Cómo transformar esta sección web.config?

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]" deliveryMethod="SpecifiedPickupDirectory"> 
     <specifiedPickupDirectory pickupDirectoryLocation="C:/test"/> 
     <network host="localhost" userName="" password=""/> 
     </smtp> 
    </mailSettings> 
    </system.net> 

Esta es mi versión .Release:

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]" xdt:Transform="RemoveAttributes(deliveryMethod)"> 
     <network xdt:Transform="Replace" host="192.168.1.9" userName="" password="" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 

¿Cómo se quita

<specifiedPickupDirectory pickupDirectoryLocation="C:/test"/> 

por lo que no aparece en mi .Liberar en absoluto?

Además, me gustaría eliminar otros espacios de nombres como System.Diagnostics por completo. ¿Cuál es la sintaxis para hacerlo?

Respuesta

22

Para specifiedPickupDirectory elemento de esto debería funcionar:

<specifiedPickupDirectory xdt:Transform="RemoveAll" />.

Para System.Diagnostics:

<system.diagnostics xdt:Transform="RemoveAll"></system.diagnostics>

-4

@katit, debe mantener dos configuraciones diferentes para el desarrollo y la versión.

su webconfig debe ser dinámico y tomar las configuraciones de la siguiente manera

/qa/yoursettings.config 


/release/yoursettings.config 

una muestra más

<connectionStrings configSource="config\qa\connectionStrings.config"/> 

cuando se va a qa o liberar, cambiar su web.config en consecuencia.

de esta manera será mucho más limpio.

+0

me gustan las transformadas de manera VS2010 y publica web.config para mí. Por lo tanto, pregunta ... Estoy haciendo muchas otras transformaciones y es mucho más fácil tener diferentes configuraciones y publicarlas manualmente. – katit

+2

-1: explícitamente me preguntó acerca de las transformaciones web.config, una característica de Visual Studio 2010. –

+3

Estoy de acuerdo con John. Él está preguntando acerca de las transformaciones de configuración y su código es un retroceso a los días previos a que tuviéramos esa capacidad. – NotMe

1

En lugar de intentar quitar la configuración de su versión de lanzamiento, se puede tomar desde la versión base y sólo tiene que añadir a la versión .debug? Eso podría ser más simple. Sin embargo, si desea eliminarlo, creo que puede usar <specifiedPickupDirectory xdt:Transform="Remove"/> o algo similar.

+0

No estoy seguro de por qué las personas rechazaron esta sugerencia, la votaré mejor. En mi caso, la depuración es mi servidor de prueba y lanzamiento del servidor de producciones. Estoy usando la versión base para el desarrollo. – katit

+5

Buena respuesta (+1). Sin embargo, se debe señalar que cuando se ejecuta una aplicación web desde el estudio visual, NO hace la transformación config.Lo que significa que tenemos que dejar una buena cantidad de cosas en la web.config regular que debe eliminarse. Las transformaciones solo ocurren al publicar los sitios. Esto podría no ser un problema si solo prueba publicando en el servidor IIS local o en un servidor de desarrollo remoto. – NotMe

16
<system.net> 
    <mailSettings> 
     <smtp from="[email protected]" xdt:Transform="Replace"> 
     <network xdt:Transform="Replace" host="192.168.1.9" userName="" password="" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 

Esto reemplazará toda esa etiqueta con la suya .. espero que esto es lo que buscas ..

lo bueno de esto es que se DNT termina contaminando su transformación configuración con comandos eliminar innecesarias como algunas de las respuestas indicadas aquí ..

considerar el caso en que usted tiene más de un tag hijos ..

+0

He intentado y probado esto y lo uso regularmente para mis transformaciones – Baz1nga

+0

Prefiero reemplazar toda la sección de mi auto, especialmente si más adelante necesita modificar los elementos que no tenía en cuenta. –

Cuestiones relacionadas