IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C# 2.0] vérifier présence d'une dll


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 349
    Par défaut [C# 2.0] vérifier présence d'une dll
    Salut,

    J'ai une application qui nécessite des dll pour fonctionner. Afin d'éviter des plantages je veux vérifier la présence des dlls au lancement de l'application mais je n'ai pas trouvé comment faire.

    Je sais qu'on peut vérifié l'appel de la fonction en lui-même avec des try{...} catch{...} :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try
    {
         log_c.log_set_level(3);
    }
    catch(DllNotFoundException e)
    {
         MessageBox.Show("DLL NOT FOUND");
         Application.Exit();
    }
    Mais j'ai pas mal d'appels de fonctions et faire des try catch pour chacun est plutôt lourd.

    Que me conseillez-vous ? Y-a-t'il moyen de faire quelque chose au niveau du DllImport ?

    Merci.

    ++

  2. #2
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    AppDomain.Current.GetAssemblies
    Tu récupère tous les assembly chargés au moment de l'appel.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 349
    Par défaut
    Désolé pour le retour tardif, mon disque dur m'a lâché

    Je vais essayer ta solution.

    Merci.

    ++

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 349
    Par défaut
    Salut !

    J'ai essayé "AppDomain.Current.GetAssemblies" mais je ne vois pas mes dll dans ce qui est récupéré...

    J'ai loupé quelque chose ?

    ++

  5. #5
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Info 1 : Quand tu utilises cette méthode, tu ne récupère QUE les Assemblies préalablement chargés.
    Info 2 : Un assembly n'est chargé QUE quand tu utilises un Type de cet assembly pour la première fois.

    Conclusion : En fait, ce n'est pas l'info que tu cherchais.

    Solution 2 : au lancement de ton appli, tu instancies un (petit) objet de chacun de tes assemblies, le tout entouré d'un "try / catch". Si tu as un plantage (FileNotFoundException je crois), alors c'est que l'assembly n'est pas présent.

    Info 3 (on sait jamais) : en .net, dll = assembly

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 349
    Par défaut
    Citation Envoyé par Mose
    Info 1 : Quand tu utilises cette méthode, tu ne récupère QUE les Assemblies préalablement chargés.
    Info 2 : Un assembly n'est chargé QUE quand tu utilises un Type de cet assembly pour la première fois.

    Conclusion : En fait, ce n'est pas l'info que tu cherchais.

    Solution 2 : au lancement de ton appli, tu instancies un (petit) objet de chacun de tes assemblies, le tout entouré d'un "try / catch". Si tu as un plantage (FileNotFoundException je crois), alors c'est que l'assembly n'est pas présent.

    Info 3 (on sait jamais) : en .net, dll = assembly
    Merci, je ne le savais pas encore... En fait je suis en quelque sorte un informaticien industriel qui débute en C# donc le vocabulaire n'est pas toujours le même...

    Sinon pour vérifier la présence de mes assemblies, je fais avec System.IO.File.Exists. Le FileNotFoundException est-il préférable ?

    Merci.

    ++

Discussions similaires

  1. Vérifier présence d'une variable dans une colonne.
    Par sarah-geek dans le forum Général VBA
    Réponses: 4
    Dernier message: 01/08/2012, 14h02
  2. Réponses: 1
    Dernier message: 18/04/2007, 08h16
  3. Vérifier la présence d'une colonne dans une table
    Par m1sterd dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/11/2006, 11h13
  4. Réponses: 3
    Dernier message: 13/11/2006, 16h08
  5. comment vérifier la présence d'une valeur ds une chaîne ?
    Par lidouka dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/03/2006, 07h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo