J'ai décidé de modifier du code aujourd'hui et j'ai rencontré une erreur qui n'a aucun sens pour moi. J'ai une interface appelée IDatabase
et une classe qui en hérite, appelée Database
. À l'origine, je viens de mettre IDatabase
dans le même assemblage que Database
, mais je n'aimais pas cela parce que cela empêcherait une autre personne de créer un nouveau type de IDatabase
sans avoir l'ensemble complet. J'ai déplacé IDatabase dans un nouvel assemblage séparé appelé LibraryInterfaces
et j'ai modifié toutes mes références dans le projet.Impossible de charger le type '<typename>' à partir de l'assembly '<assembly>'
Le projet compile très bien, mais quand je l'exécute, je reçois l'erreur:
Could not load type 'Company.Database.IDatabase' from assembly 'Company.Database'.
Cela ne fait pas de sens pour moi, parce que je me suis déplacé définition de IDatabase
à LibraryInterfaces
! J'ai vérifié les fichiers dans le dossier en cours d'exécution, et les fichiers sont corrects. Je les ai même ouvert dans Reflector, juste pour vérifier toutes les références, et celles-ci sont également correctes. J'ai également enlevé ma déclaration using
et ai entièrement qualifié toute l'utilisation de IDatabase
, et même cela n'a pas fait le tour!
Quelqu'un a-t-il des conseils pour corriger ce problème?
Je pensais que ces problèmes étaient anciens - j'avais l'habitude de le faire avec VC++, mais je ne l'ai jamais rencontré auparavant avec C#. Merci, je vais essayer ça maintenant! – Dave
Cela a absolument fait l'affaire, merci! Je ne peux pas croire que c'est encore quelque chose qui doit être fait. Quelqu'un peut-il expliquer pourquoi c'est le cas? – Dave
Je n'ai aucune idée de la raison, mais quelque part, certaines références ne sont pas mises à jour. content que le correctif ait fonctionné pour toi :) – Patricia