(je l'ai mis le drapeau appartient à la communauté sur celui-ci, parce que c'est la plupart du temps tout de mon instinct, et je l'ai probablement manqué une étape cruciale là quelque part)
Réponse courte : C'est généralement une bonne idée de déployer vos dépendances à côté de votre application, en utilisant un programme d'installation. Sans eux, comme vous l'avez remarqué, il y a très peu de chance que votre application fonctionne.
Réponse longue: Ok, que vous avez fonctionnalité supplémentaire que vous voulez fournir si quelque chose d'autre est installé sur la machine cible. Voici quelques directives générales pour le faire:
- Pour tout type qui a un champ, une propriété, un événement, un paramètre ou valeur de retour qui fait référence à un type défini dans l'assemblage éventuellement désinstallés: doit être enveloppé d'une interface, et remplacez toutes les autres déclarations de champ, de paramètre, de valeur de retour ou de variable locale pour utiliser l'interface.
Chaque fois que vous allez construire une des classes enveloppées précédemment, vous devez utiliser la méthode System.Activator.CreateInstance
, et l'envelopper dans un try/catch filtrage sur 7 différents types d'exception:
FileNotFoundException
FileLoadException
BadImageFormatException
TypeLoadException
MissingMethodException
MissingMemberException
MissingFieldException
Si l'un de ceux qui est pris, vous devez soit fournir une implémentation alternative de l'interface créée précédemment, ou écrivez votre code afin qu'il vérifie nul tout temps, il fait référence à cet objet.
Merci pour cette explication, mal utiliser le code d'exemple fourni par Josh, mais cette information est très utile aussi bien – beakersoft