Я просто хотел поделиться тем, что я узнал. Здесь много постов об исключениях TypeLoadException, но ни в одном из них не было ответа, который мне был нужен.
На этой странице есть какая-то особенно полезная информация, но, похоже, она не касается конкретно того, что я видел и как я ее решил (может быть неправильно):
TypeLoadException говорит «нет реализации», но оно реализовано
РЕШЕНИЕ для меня было простым: удалите все файлы, которые кэширует Visual Studio 2010, и используйте их для создания файлов сборки.
История вопроса:
Вот еще несколько деталей. Я видел TypeLoadException, как:
Необработанное исключение: System.TypeLoadException: метод [имя метода] в
введите [имя типа] из сборки [имя сборки], версия = x.x.x.x,
Культура = нейтральная, PublicKeyToken = ноль не имеет реализации.
У меня была реализация ... Я думал, пока не посмотрел сборку с ILDASM. Я обнаружил, что старые версии библиотек DLL записываются в мою выходную папку с устаревшими интерфейсами. Моя папка вывода не была настройкой по умолчанию, а относительным путем за пределами папки проекта (может быть, VS не может обработать это полностью ??). После выполнения очистки / перестройки проекта папка «obj» проекта была единственной папкой во всех дочерних папках папки моего проекта, в которой была правильная метка даты в DLL. Папка «bin» по какой-то причине все еще имела старую версию. И я полагаю, именно это было скопировано в выходную папку.
До этого я пробовал:
- чистый / восстановление
- перезапуск Visual Studio (2010)
- перезагрузка
- удаление моих библиотек сборки в выходной папке (bin \ x86 \ debug)
... безуспешно.
Я не уверен, почему VS не копировал правильную сборку в "obj" в выходную папку ... Проект, который ссылался на устаревшую сборку , был правильным .