2010-06-24 18 views
0

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?

Répondre

2

J'ai rencontré des problèmes similaires. supprimez tout dans le dossier bin, nettoyez la solution et reconstruisez.

+0

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

+0

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

+0

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

2

Vous avez peut-être changé toutes vos références, mais est-ce que certaines de ces références référencent à leur tour l'ancien assemblage? C'est l'une des choses que le projet open source Refix devrait pouvoir résoudre avant longtemps (les excuses pour la prise éhontée).