2009-12-02 16 views

Répondre

3

Si l'exe ne trouve aucune DLL requise, il doit déjà afficher une erreur. Quelque chose dans le genre de:

Le programme ne peut pas démarrer, car example.dll est absent de votre ordinateur. Essayez de réinstaller le programme pour résoudre ce problème.

Le fait que vous n'êtes pas obtenir cela implique une de plusieurs choses:

a) Le dll n'est pas réellement référencé par votre programme.

b) Vous avez lié la DLL dans l'exe.

c) La DLL a été trouvé ailleurs par le CLR (grâce Pondidum)

+0

également possible que la DLL ait été trouvée ailleurs par le CLR – Pondidum

1

Dans une application .NET vous n'obtiendrez une erreur jusqu'à ce que la première fois que vous essayez d'utiliser une classe dans la DLL manquante.

Quelques possibilités:

  • écrire du code qui fonctionne au démarrage du programme et appelle des méthodes fictives sur une classe dans chaque DLL
  • appel récursive Assembly.GetReferencedAssemblies() et construire une liste des DLL manquantes
1

Il est également possible que votre exe trouve l'assemblage nécessaire ailleurs. Pour vérifier où chercher un assemblage nécessaire, consultez this article on MSDN.

Une autre possibilité serait d'utiliser les événements AssemblyLoad ou AssemblyResolve pour obtenir plus d'informations sur les assemblages qui ne sont pas chargés.