vendredi 27 avril 2012

Transformation des fichiers de configuration

Lorsque l'on déploie son application sur plusieurs environnements différent, il est nécessaire de modifier le fichier de configuration(web.config dans le cas des applications web, app.config sinon). Il est donc nécessaire de conserver ces fichiers de configurations et ne pas les écraser lors des déploiements.

Il est possible avec Visual Studio 2010 de générer des fichiers de configuration propre à l'environnement considéré avec la fonctionnalité Web.config Transform. Par défaut, cette fonctionnalité est automatiquement gérée par visual studio pour les projets web. Pour avoir le même comportement avec les fichiers app.config (projets non web) il existe un plug-in qui fera tout le travail pour vous : SlowCheetah - XML Transforms.

Comment ca marche ? Tout d'abord il est nécessaire d'ajouter un fichier de configuration dans votre projet(si cela n'est déja fait). Ensuite, avec un click droit sur votre fichier de configuration séléctionner l'option "Add Transform" ce qui va généré un fichier par configuration défine dans votre projet.
Ajouter les fichiers de transformations

Il est à présent possible de définir ce qui doit être changé dans le fichier de configuration en fonction de l'environnement/configuration cible. Pour l'exercice, je voudrais avoir une paramètre de mon application qui change en fonction de l'environnement. Voici mon fichier de configuration :

Un exemple de fichier de configuration

Je voudrais avoir la valeur "Hey this is the debug file" lorsque je suis dans mon environnement de debug. Pour ce faire, je modifie le fichier App.Debug.config comme suit :

Un exemple de transformation de configuration

Dans mon projet, je référénce la configuration et je récupère le paramètre de configuration comme on le fait habituellement, par exemple (Une référence vers l'assembly System.Configuration est nécessaire) :


En fonction de la configuration choisie lors du build, le résultat retourné sera différent ! Il est possible de faire d'autres actions que simplement modifier le fichier de configuration. Pour plus d'informations, je vous invite à lire la document de la MSDN (voir sources)

Pour générer des fichiers de configuration propre à chaque environnement, il est possible de créer des configurations de build supplémentaires via le configuration manager (accessible via le menu Build/Configuration Manager). Une fois vos environnements définis, il suffit de recréer les fichiers de transformation en répétant l'opération "Add Transform" comme nous l'avons vu plutôt.

Sources et références:

Aucun commentaire:

Enregistrer un commentaire