2009-03-24 15 views

risposta

10

Hai mai pensato di utilizzare <xmlpoke>?

<xmlpoke file="${Build.WebConfig}" 
    xpath="/configuration/system.web/compilation/@debug" 
    value="false"> 
</xmlpoke> 

NAnt Home Page

XML Poke Documentation

+0

Raccomando di aggiungere collegamenti alla home page di NAnt e alla documentazione di xmlpoke. –

+0

xml l'analisi è :-) – Cherian

2

Il mio modo di affrontare questo è che ho i file di configurazione separato per ogni ambiente di distribuzione:

  • Produzione
  • Staging
  • Sviluppo

Sul "build script", copio i file di configurazione per il tipo che sto costruendo. Ad esempio, su Staging vorrei copiare /configs/staging/*.config nella root del sito web. Quindi, il mio script chiamerebbe aspnet_compiler per compilare l'applicazione.

+1

+1. In realtà faccio un ulteriore passo avanti e distribuisco più file web.config, denominati web.config.empty, web.config.default, ecc ... in questo modo 1) Non sovrascrivo mai un file web.config esistente e 2) utenti può rivedere le impostazioni utilizzate in modi diversi. – overslacked

+0

Aiuta anche con un team di sviluppatori di 10+ persone, tutte con SQL installato localmente, Vista IIS7 vs XP6 di IIS, ecc. Il team deve solo essere addestrato sul fatto che "quando una configurazione viene cambiata, assicurati che sia tutti gli altri file di configurazione " – eduncan911

3

Io suggerirei di usare completamente diversi file di configurazione per ogni ambiente (prod, di prova, mettendo in scena nel nostro caso). A seconda della build, useresti solo la configurazione richiesta, nessun disordine, meno chiasso. Hanselmen ha un esempio su come farlo in Visual Studio e se leggi il primo commento Phil Hack ha funzionato con NAnt.

<target name="configMerge"> 
    <copy file="${sourcefile}" 
     tofile="${destinationfile}" overwrite="true"> 
     <filterchain> 
     <expandproperties /> 
     </filterchain> 
    </copy> 
    </target> 

Inoltre, se si sta utilizzando VS 2010 è ora possibile utilizzare web.config transforms

0

Sto usando questo strumento come parte della mia catena di compilazione. Consente le impostazioni di configurazione condizionale all'interno di un singolo file xml in base alle impostazioni di generazione.

http://xmlpreprocess.sourceforge.net/

0

Utilizzo di progetti di implementazione web è possibile scambiare le diverse sezioni del web.config dopo la vostra build.