2010-06-24 1 views
0

Я решил изменить код сегодня и столкнулся с ошибкой, которая для меня не имеет никакого смысла. У меня есть интерфейс под названием IDatabase и класс, который наследуется от него, называется Database. Я изначально просто положил IDatabase в ту же сборку, что и Database, но мне это не понравилось, потому что это помешало бы другому человеку создать новый тип IDatabase без наличия всей сборки. Я переместил базу данных в новую отдельную сборку под названием LibraryInterfaces и изменил все мои ссылки в проекте.Не удалось загрузить тип '<typename>' from assembly '<assemblyname>'

Проект компилируется нормально, но когда я исполню его, я получаю сообщение об ошибке:

Could not load type 'Company.Database.IDatabase' from assembly 'Company.Database'. 

Это не имеет никакого смысла для меня, потому что я переехал IDatabase «s определение LibraryInterfaces! Я дважды проверял файлы в папке, из которой выполняется, и файлы верны. Я даже открыл их в Reflector, просто чтобы проверить все ссылки, и они тоже правильные. Я также удалил свой оператор using и полностью квалифицировал все использование IDatabase, и даже это не помогло!

У кого-нибудь есть советы по исправлению этой проблемы?

ответ

2

У меня возникли аналогичные проблемы. удалите все в папке bin, очистите решение и перестройте.

+0

Я думал, что эти проблемы были в прошлом - я делал это с VC++, но до этого никогда не сталкивался с C#. Спасибо, я попробую это сейчас! – Dave

+0

Это абсолютно трюк, спасибо! Я не могу поверить, что это еще что-то, что нужно сделать. Может ли кто-нибудь объяснить, почему это так? – Dave

+0

Я понятия не имею, какова фактическая причина, но где-то некоторые ссылки не обновляются. рад, что исправление работало на ya :) – Patricia

2

Возможно, вы изменили все свои ссылки, но некоторые из этих ссылок, в свою очередь, ссылаются на старую сборку? Это одна из вещей, с которой проект с открытым исходным кодом Refix должен быть в состоянии решить слишком долго (извинения за бесстыдный плагин).