Что может быть причиной исключения System.TypeLoadException в модульном тесте Visual Studio? - PullRequest
26 голосов
/ 20 апреля 2011

У меня есть библиотека классов C # .NET MyClassLibrary , которая прекрасно компилируется. Я пытаюсь создать для него проект модульного теста (с использованием Visual Studio Unit Testing Framework, с Visual Studio 2010). В библиотеке классов есть большие классы, но всякий раз, когда я запускаю даже самый простой тест для самого простого класса, я получаю следующее исключение:

Метод тестирования MyClassLibraryTest.MyClassLibraryTests.MySimpleClassTest вызвал исключение: System.TypeLoadException: не удалось загрузить тип «MyClassLibrary.MySimpleClass» из сборки «MyClassLibrary, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = ноль».

Все проекты, с которыми я имею дело, находятся в одном решении, и все они скомпилированы для .NET 4.0. Все это на 64-битной машине с Windows 7.

Вот странная часть: когда я " запускаю " тест, я получаю вышеуказанную ошибку. Но когда я " Debug " тест, он работает нормально. Почему?

Ответы [ 12 ]

0 голосов
/ 09 марта 2017

В случае, если это помогает другим с той же ошибкой (я понимаю, что это не дает прямого ответа на вопрос re Release v Debug); Я объединился в устаревшем проекте с пространством имен, которое конфликтует с существующим, поэтому переименовал его. Я получил эту ошибку при попытке создать форму из этого проекта.

Я проверил, что цель платформы была такой же, и удалил каталоги. \ Bin \, чтобы обеспечить чистую перестройку, удалил ссылку на объединенный проект и повторно добавил ее, но все еще та же ошибка.

В конце концов (!) Я проверил Имя сборки в свойствах проекта (щелкните правой кнопкой мыши проект, выберите «Свойства», выберите вкладку «Приложение») и изменил его, чтобы оно соответствовало пространству имен по умолчанию, и теперь все в порядке. 1005 *

0 голосов
/ 01 сентября 2016

У меня была эта ошибка с использованием NUnit 3 в VS 2013. Я решил ее, удалив ссылку на сборку в своем тестовом проекте для сборки, которая содержала тип, который не был найден, а затем повторно добавил ссылку.

...