Visual studio dispose depuis sa version 2005 de superbes fonctionnalités de configuration rendant la tâche de paramétrage d’une application totalement transparente… du moment que l’on a une utilisation basique.
Dans le cas d’une bibliothèque de classe (ou autre dll) le fichier de configuration de celle-si n’est pas automatiquement prise en charge. Vous pouvez toujours tenter de déployer un exécutable avec ce genre de dll et changer un paramètre dans le fichier de configuration de la DLL, ce changement ne serra jamais prise en compte.
Pour s’en sortir : Il existe toujours la possibilité de charger manuellement le fichier de configuration via un code personnalisé… mais il s’agit là de la solution la plus ardue.
Pour aller au plus simple; il faut inclure les données du fichier de configuration de la DLL dans celui de l’exécutable. Pour cela on ouvre les fichiers app.config de chaque projet de de prendre le contenu présent dans celui de la ou des dll et de l’inclure dans le app.config de l’exécutable.
Cela se fait en copiant le contenu des sections “configSections”, “applicationSettings” et/ou "userSettings” et en les ajoutant au fichier app.config.
Par exemple pour un exécutable application1 et deux DLL dll1 et dll2 utilisant des paramètre utilisateur on aura un fichier sous la forme :
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <sectionGroup name="userSettings" ... > <section name="App1.Properties.Settings" ... /> <section name="Dll1.WindowsForms.Properties.Settings" ... /> <section name="Dll2.WindowsForms.Properties.Settings" ... /> </sectionGroup> </configSections> <userSettings> <App1.Properties.Settings> // ... </App1.Properties.Settings> <Dll1.Properties.Settings> // ... </Dll1.Properties.Settings> <Dll2.Properties.Settings> // ... </Dll2.Properties.Settings> </userSettings> </configuration>
Si on avait de paramètre machine, on aurait aussi une section “applicationSettings” et un sectionGroup associé.