none
Libraire de classes - fichiers App.config & Web.config RRS feed

  • Question

  • Bonjour,

     

    j'avais un projet Windows Forms dans lequel j'appelais Membership.CreateUser et la classe Net.Mail.MailMessage, le provider du premier se trouvant dans un fichier App.config, les propriétés de l'autre dans un fichier Web.config. Tout se déroulait très bien.

     

    pour certaines raisons je dois utiliser les mêmes fonctionnalités mais dans une class library, hors, selon le site, class library et fichiers config c'est pas possible

     

    http://msdn.microsoft.com/en-us/library/a65txexh%28v=vs.80%29.aspx

     

    résultat: l'hôte SMTP n'est pas défini pour le mailing et le provider non plus, donc VS me crée une nouvelle base de donnée configurée ASPNET... pas très drôle.

     

    je ne peux pas m'imaginer qu'il n'y ai pas de solutions

     

    - pour quand même utiliser les fichiers .config pour avoir mes mailSettings et  <membership><providers> ?

    - pour définir les informations pour le mailing dans le code OK, mais quand serait-il pour le <membership><providers> ?

     

     


    Pj.
    jeudi 12 mai 2011 07:25

Réponses

  • Bonjour,

    lorsque vous utilisez un exe le fichier de config prend automatiquement le nom de l'exe à la compilation dans visual studio : dans votre cas si votre exe se nomme monScript.exe le nom par défaut est bien monScript.exe.config. Vous pouvez faire le test en créant un projet console dans visual studio, ajouter un fichier de config, compiler et voir le nom du fichier obtenu.

    Une remarque cependant, même si votre librairie de classe utilise des informations de paramétrage, ces informations devraient être dans le fichier de config du programme principal :

    - ce sera beaucoup plus facile de configurer l'application avec les paramétres dans un seul fichier

    - ou placer le fichier de config si votre librairie doit être installée dans le GAC ?

    - vous n'avez rien de particulier à faire pour que votre librairie puisse lire des infos dans un web.config ou app.config. Par défaut la bibliothèque de classe ira lire les infos des ces fichiers.

    Si vraiment vous tenez à avoir un fichier séparé, vous pouvez référencer un fichier de config depuis le fichier principal via l'attibut file de l'élément appSettings

    Cordialement


    lundi 16 mai 2011 09:07
    Modérateur

Toutes les réponses

  • Bon je n'ai toujours pas trouvé de vraie solution.

     

    Voilà mon idée: l'environnement dans lequel je travaille n'autorise que les appels de dllpour son intégration .net

    je fais donc une dll: pas de app.config possible

    je fais une dll qui lance (process.start) une application console qui elle fera le code: que neni, il semble que l'application console cherche à utiliser les propriétés de configuration de l'application qui l'a lancée (la dll) donc rebelote, ce qui est très frustrant car quand je lance cette application console seule, elle utilise le bon fichier app.config...

     

    me questions sont desormais;

     

    • une dll lance un exe
    • peut on forcer l'exe a utiliser le fichier app.config qui lui est (normalement) destiné ?

     

    J'ai trouvé que le provider utilisé lorsque la dll me crée une nouvelle database est celui défini dans le fichier machine.config, fichier qui se trouve dans c/windows/microsoft.net/framework/v.../

     

    • une solution (...) serait de modifier le provider qui se trouve dans ce fichier, mais son accès m'est refusé

     


    Pj.
    jeudi 12 mai 2011 10:02
  • Trouvé:

     

    j'ai renommé le fichier "app.config" en "monScript.exe.config"

     

    Si quelqu'un pouvait m'expliquer..


    Pj.
    jeudi 12 mai 2011 11:21
  • Bonjour,

    lorsque vous utilisez un exe le fichier de config prend automatiquement le nom de l'exe à la compilation dans visual studio : dans votre cas si votre exe se nomme monScript.exe le nom par défaut est bien monScript.exe.config. Vous pouvez faire le test en créant un projet console dans visual studio, ajouter un fichier de config, compiler et voir le nom du fichier obtenu.

    Une remarque cependant, même si votre librairie de classe utilise des informations de paramétrage, ces informations devraient être dans le fichier de config du programme principal :

    - ce sera beaucoup plus facile de configurer l'application avec les paramétres dans un seul fichier

    - ou placer le fichier de config si votre librairie doit être installée dans le GAC ?

    - vous n'avez rien de particulier à faire pour que votre librairie puisse lire des infos dans un web.config ou app.config. Par défaut la bibliothèque de classe ira lire les infos des ces fichiers.

    Si vraiment vous tenez à avoir un fichier séparé, vous pouvez référencer un fichier de config depuis le fichier principal via l'attibut file de l'élément appSettings

    Cordialement


    lundi 16 mai 2011 09:07
    Modérateur