Configuration projet dll, comment y accéder ?

Résolu
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008 - 26 mars 2007 à 15:41
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008 - 3 avril 2007 à 18:14
Bonjour à tous,

Voilà, j'ai un petit souci pour accéder à la configuration de ma dll. Voici un résumé de mes projets :

D'abord, j'ai fait un projet destiné à produire une DLL. Le code de cette dll utilise le ConfigurationManager pour accéder à son fichier de configuration app.config (ou est-ce le fichier settings.settings ? ça je ne sais pas). Je précise ça, parce qu'avant d'en faire une DLL, j'en avais fait une application console. Le code qui suivra marchait très bien en console, sauf que Visual ne permet pas de lancer le débug sur une DLL (ce qui semble logique...). J'ai donc créé un projet VB dans lequel j'ajoutais la référence à ma DLL et même à System.Configuration (utile pour le ConfigurationManager), mais impossible d'accéder aux données du fichier. Voici la ligne de code qui pose souci :

         string  m_nomTableRef = ConfigurationManager.AppSettings["tableRef"];

Lorsque je compilais mon projet Console, nickel, pas de souci, il allait lire sans problème le paramètre "tableRef". En dll, intégrée à un autre projet, même en ayant ajouté les références ça ne fonctionne pas : il me retourne null sur cette instruction :( J'ai pourtant essayé de mettre et le fichier app.config, et le fichier settings.settings dans le répertoire de la dll, ou même en éléments existants ajoutés au projet, rien n'y fait :(

Quelqu'un saurait donc me débloquer...? Je cherche à pouvoir faire en sorte que ma dll perso accès à son fichier de configuration au sein d'un autre projet auquel elle est intégrée...

Merci par avance !

"Un seul Être vous manque, et tout est dépeuplé..."

11 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
3 avril 2007 à 16:10
salut,

cela reste le plus simple : http://www.bearcanyon.com/dotnet/#AssemblySettings

ShareVB
3
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
30 mars 2007 à 16:58
salut,

bon, alors après test, j'en conclus que la doc de MS n'est pas clair parce que en fait, c'est comme en 1.0/1.1, ca ne marche pas non plus en 2.0...

par contre, ceci doit fonctionner :
http://www.bearcanyon.com/dotnet/#AssemblySettings

ShareVB
1
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
27 mars 2007 à 21:01
salut,

c'est simple : une dll ne peut pas avoir de app.config car app.config se transforme en nom_appli.exe.config lors de la compilation...donc uniquement pour les exe...par contre, si tu renommes le fichier dans le dossier de ton appli en nom_appli.exe.config peut être que la dll pourra y accéder...j'ai jamais essayé...

ShareVB
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 mars 2007 à 21:10
Si si, un project de type library peut tout à fait avoir son fichier de config (qui est alors de la forme myLib.dll.config).
Pour répondre à la première question, c'est le fichier config qui est ouvert avec l'object ConfigurationManager (le *.config). La section AppSettings permet d'accéder directement à une section par défaut prédéfinie qui permet de stocker les informations d'une application.

Pour l'erreur, c'est dur à dire, il faudra surement un peu plus de précision...

<hr />
-Blog-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
27 mars 2007 à 22:37
salut,

oupss, j'avais mal lu...configmanager c'est du 2.0...donc effectivement ca devrait marcher...du moins si nom_appli.dll.config est dans le même dossier que la dll...

ShareVB
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
28 mars 2007 à 09:09
En fait non, je ne suis pas tant sûr que ça marche... il me semble que le ConfigurationManager ouvre seulement les .exe si on utilise la property statique AppSettings. Il faudrait plutôt faire un Open, récupérer une instance de Configuration et y aller à la mano (si c'est le cas, c'est assez lourd).
J'ai pas essayé mais ça serait intéressant de tester...

<hr />
-Blog-
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
31 mars 2007 à 20:45
Salut,

Moui, une dll n'est pas une application, mais ses paramètres peuvent sans problème etre placé dans le fichier de configuration de l'application qui l'utilise.
En plus les bibliothèques de classe sont potentiellement destinées à être placée dans le GAC, et là ça se corserait côté gestion de la config.

/*
coq
MVP Visual C#
CoqBlog
*/
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
3 avril 2007 à 10:43
Coucou vous tous, merci de vos nombreuses réponses et pardonnez mon absence de cette semaine (indispo oblige....)

Coq n'a pas tort sur le principe, mais je sais que ma dll est potentiellement utilisable dans le même type d'application à chaque fois, et qu'en ces conditions, elle nécessite d'avoir un fichier de conf fourni avec elle. En fait, une sorte de "package" incluant la dll et sa conf quoi, voilà le produit final qu'il me faudrait.... (le fichier de conf peut se trouver dans le même répertoire, ça ne pose pas de problème particulier dans mes contraintes, et heureusement d'ailleurs :D)

En revanche, refaire l'objet Configuration à la main, en plus de ne pas savoir le faire (mais on est là pour apprendre pas vrai ?) je sens que ça fait un peu lourd pour configurer deux noms de table, un nom de DataSource...nan ? :)

Je précise qu'il se peut qu'on ne puisse pas accéder à la configuration et/ou au source de l'appli future utilisatrice de la .dll..... D'où ma contrainte de packager tout ça...

"Un seul Être vous manque, et tout est dépeuplé..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
3 avril 2007 à 16:18
Salut ShareVB,
oui j'ai déjà regardé ce que tu m'avais passé, cependant comme je l'ai dit, je suis intimement persuadé qu'on peut fournir de la conf à une dll (oui mais comment ? :D) c'est pourquoi j'ai continué à chercher dans cette voie....sans succès hélas....je pense que je vais devoir me rabattre sur la classe de ce brave personnage qui me parait tout à fait honnête....

J'accepte ta réponse (ôô comme je suis clément !!) pour les éventuels futurs quémandeurs... Merci à tous !

"Un seul Être vous manque, et tout est dépeuplé..."
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
3 avril 2007 à 17:48
salut,

comme a dit Coq, c'est tout a fait logique qu'une dll ne puisse pas avoir de configuration propre par défaut...et d'ailleurs dans les bouqins de MS Press c'est explicitement indiqué que ce n'est valable que pour les exe...

ShareVB
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
3 avril 2007 à 18:14
Oui oui je trouvais ça logique en un sens, mais pratique si ça avait pu être le cas.... Je vais me rabattre sur les AssemblySettings :) ça fera beaucoup de bruit pour presque rien mais au moins ça répond à mon besoin !

"Un seul Être vous manque, et tout est dépeuplé..."
0
Rejoignez-nous