2009-03-24 5 views

Répondre

10

Avez-vous pensé à utiliser <xmlpoke>?

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

NAnt Home Page

XML Poke Documentation

+0

Je recommande d'ajouter des liens vers la page d'accueil de NAnt et la documentation de xmlpoke. –

+0

xml l'analyse c'est :-) – Cherian

2

La façon dont je y parvenir est que j'ai séparés des fichiers de configuration pour chaque environnement de déploiement:

  • production
  • Mise en scène
  • Développement

Sur le "script de construction", je copie les fichiers de configuration pour le type que je construis. Par exemple, dans Staging, je copierais /configs/staging/*.config dans la racine du site Web. Ensuite, mon script appelle aspnet_compiler pour compiler l'application.

+1

+1. En fait, je vais un peu plus loin et déploie plusieurs fichiers web.config, nommés web.config.empty, web.config.default, etc ... de cette façon 1) Je n'écrase jamais un fichier web.config existant, et 2) les utilisateurs peut revoir les paramètres utilisés de différentes manières. – overslacked

+0

Cela aide aussi quand vous avez une équipe de développeurs de 10+, tous avec SQL installé localement, Vista IIS7 vs configs IIS6 de XP, etc .. L'équipe doit juste être formé que "quand une config est modifiée, assurez-vous que tous les autres fichiers de configuration " – eduncan911

3

Je suggère d'utiliser les fichiers de configuration entièrement différents pour chaque environnement (prod, test, mise en scène dans notre cas). En fonction de la construction, vous utiliserez simplement la configuration requise, pas de gâchis, moins d'agitation. Hanselmen a un exemple sur la façon de faire cela dans Visual Studio et si vous lisez le premier commentaire, Phil Hack l'a fait fonctionner avec NAnt.

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

En outre, si vous utilisez VS 2010 vous pouvez maintenant utiliser web.config transforms

0

Je me sers de cet outil dans le cadre de ma chaîne de construction. Il permet les paramètres de configuration conditionnelle dans un seul fichier xml basé sur les paramètres de construction.

http://xmlpreprocess.sourceforge.net/

0

Utilisation des projets de déploiement Web, vous pouvez échanger les différentes sections de votre web.config après votre construction.

Questions connexes