2010-03-09 10 views
2

J'utilise CruiseControl.Net pour mon processus d'intégration continue. En utilisant ccnet, je compile et publie mon application asp.net sur un serveur en mode Release. Mais je ne suis pas capable de changer debug = "true" en debug = "false" dans mon Web.Config lors de la publication. Que puis-je faire?Modifier Web.Config pour l'intégration continue

Répondre

1

Vous pouvez envisager d'utiliser un projet Web Deployment Project (WDP) qui peut être exécuté dans le cadre de la configuration de votre studio de création visuelle. Le WDP va gérer des choses comme basculer le paramètre de débogage et changer les paramètres web.config spécifiques à l'environnement. Voici un WDP tutorial.

0

Si vous appelez un script msbuild à partir de ccnet, vous pouvez utiliser la tâche XmlUpdate du projet Tâches de communauté MSBuild.

<XmlUpdate 
    XPath="/configuration/system.web/compilation/@debug" 
    XmlFileName="$(WebConfigFileFullPath)" 
    Value="false" /> 

J'ai documenté mon processus de construction here si vous êtes intéressé.

0

expansion sur Tom Brothers réponse ci-dessus, nous utilisons la tâche <XmlMassUpdate> dans MSBuild tâches communautaires pour fusionner un web.config spécifique au déploiement qui contient plusieurs modifications à appliquer à la base web.config pour modifier le réglage de mise au point, les chaînes de connexion, l'exploitation forestière configuration, etc Donc, un projet Web contient web.config avec la configuration nécessaire pour fonctionner à partir des machines de développement. Il y a aussi le fichier web.Release.config qui contient uniquement les modifications que nous devons appliquer à web.config pour produire la configuration sur le serveur web de production.

Étant donné que le fichier supplémentaire ne contient que des modifications (deltas) à appliquer à web.config, ce n'est pas très grand. Visual Studio l'ignore pendant le développement et CruiseControl.Net applique les modifications à web.config lorsqu'il est déployé sur le serveur Web.