Si le nombre de configurations est fini et connu (test, UAT, bureau de production, mobile de production, etc.), vous pouvez profiter de l'attribut configSource trouvé sur les AppSettings, ConnectionStrings et éléments ConfigSection. Voici la prémisse de base; créer un fichier AppSettings.xyz.config pour chaque configuration, où xyz est le nom de la configuration ("local" "test", "uat", "prod", etc). Créer un seul fichier app.config qui utilise une définition <!ENTITY config "xyz">
et a configSource attributs pour différentes sections ensemble similaire à:
<appsettings configSource="appSettings.&config.config">
Maintenant, dans la logique de déploiement, vous changer une chose; la chaîne littérale définie par l'entité. Cette modification est assez simple pour que vous n'ayez pas vraiment besoin d'analyse XML pour effectuer le changement; Slurp le fichier en mémoire avec un FileStream, trouver la définition de l'entité, faire la modification et cracher le nouveau contenu dans le fichier. Si vous utilisez un programme d'installation, vous pouvez contrôler quelles configurations enfants sont installées ou simplement les mettre à la disposition des utilisateurs pour plus de simplicité.
Je pense également à utiliser un gabarit de chaîne comme faisant partie de la solution. Dans un sens, il existe des valeurs spécifiques à l'environnement que l'équipe d'exploitation doit modifier manuellement pour les modifier. – odez213
J'ai regardé l'application config xsd pour le framework .net spécifique et j'essaye de générer le shell xml pour cela. C'est là que je fais des recherches en ce moment. – odez213