2011-08-23 12 views
17

Ho seguendo configurazione per la mia mail:Come trasformare questa sezione web.config?

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

Questa è la mia versione .Rilasciare:

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

Come posso rimuovere

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

in modo che non mostra nel mio . Per favore?

Inoltre, vorrei rimuovere completamente altri namespace come System.Diagnostics. Qual è la sintassi per farlo?

risposta

22

Per specifiedPickupDirectory elemento questo dovrebbe funzionare:

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

Per System.Diagnostics:

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

-4

@katit, è necessario mantenere due configurazioni diverse per dev e release.

tua webconfig dovrebbe essere dinamica e prendere il file di configurazione, come di seguito

/qa/yoursettings.config 


/release/yoursettings.config 

più un campione

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

quando si va a qa o rilasciare, accendere il web.config di conseguenza.

in questo modo sarà molto più pulito.

+0

mi piace il modo in cui trasforma VS2010 e pubblica web.config per me. Quindi domanda .. Sto facendo molte altre trasformazioni ed è molto più facile quindi avere diverse configurazioni e pubblicarle manualmente. – katit

+2

-1: ha chiesto esplicitamente su web.config transforms, una funzionalità di Visual Studio 2010. –

+3

Sono d'accordo con John. Sta chiedendo delle trasformazioni di configurazione e il tuo codice è un ritorno ai giorni precedenti alla nostra capacità. – NotMe

1

Piuttosto che tentare di rimuovere la configurazione dalla versione di rilascio, si può che prendere dalla versione base e basta aggiungere alla versione .debug? Potrebbe essere più semplice. Comunque se vuoi rimuoverlo penso che tu possa usare <specifiedPickupDirectory xdt:Transform="Remove"/> o qualcosa di simile.

+0

Non sono sicuro del motivo per cui le persone hanno downvoted questo suggerimento, lo inviterò. Nel mio caso il debug è il mio server di test e il mio server di rilascio delle produzioni. Sto usando la versione di base per lo sviluppo. – katit

+5

Buona risposta (+1). Tuttavia, va sottolineato che quando un'applicazione web viene eseguita all'interno di Visual Studio NON esegue la trasformazione di configurazione.Il che significa che dobbiamo lasciare una buona quantità di materiale nel web.config normale che deve essere rimosso. Le trasformazioni si verificano solo sulla pubblicazione dei siti. Questo potrebbe non essere un problema se si esegue il test solo pubblicando sul server IIS locale o su un server dev 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> 

Questo sostituirà quello intero tag con il vostro .. spero che questo è quello che stai cercando ..

la cosa buona di questo è che si finisce per inquinare DNT la trasformazione di configurazione con i comandi rimuovere inutili come alcune delle risposte indicate qui ..

consideri il caso in cui si dispone di più di un tag di livello inferiore ..

+0

Ho provato e testato questo e lo uso regolarmente per le mie trasformazioni – Baz1nga

+0

Preferisco sostituire l'intera sezione da solo, soprattutto se in seguito è necessario modificare gli elementi per i quali non si è tenuto conto. –

Problemi correlati