Как я могу устранить неполадки: System.TypeLoadException? - PullRequest
12 голосов
/ 20 сентября 2011

Можете ли вы показать мне способ устранения неполадок System.TypeLoadException ?

У меня есть исключение для существующего проекта в моем решении, на которое я ссылаюсь из проекта модульного тестирования в том же решении.

Это исключение выдается, когда я запускаю свои модульные тесты. Они терпят неудачу из-за этого исключения:

подробности:

метод испытаний MyErrorHandler.Test.MyTest.Parse_RecievesValidMessage_ReturnsArray сгенерировано исключение: System.TypeLoadException: не удалось загрузить тип MyTestNameSpace из сборки MyTestAssemblyName.Test, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = Somenumber.

Что я должен проверить или с чего начать?

Ответы [ 5 ]

12 голосов
/ 12 декабря 2013

Одна из ситуаций, когда выбрасывается это исключение, - если исполняющая сборка имеет то же имя, что и сборка с данным типом. Например, если вы используете MyApp.exe и тип - MyApp.dll , CLR будет считать, что тип должен быть MyApp.exe, Решением было бы переименовать одну из этих сборок.

3 голосов
/ 20 сентября 2011

В сообщении об исключении или, возможно, в свойстве InnerException, вы можете найти требуемый тип с полным именем, версией, сборкой.Проверьте, доступна ли данная сборка из каталога приложения.Достижимое значение в каталоге приложения или в частном пути проверки приложения.

РЕДАКТИРОВАТЬ: также проверьте, что достижимы спутниковые сборки (на которые ссылается сборка, если загрузчик типов не загружается).

2 голосов
/ 20 сентября 2011

Вы можете попробовать включить «Разбить при возникновении исключения» из «Отладка -> Инструменты -> Исключения» и установить все флажки в столбце «Брошенный». При повторном запуске теста вы сможете точно определить, где выдается это исключение.

1 голос
/ 20 сентября 2011

Ну ... Это было совсем плохо.

Я дал неправильное имя сборки, что привело к отсутствию DLL в папке bin.

Благодаря моему приятелю, он указал мне, чтобы проверить папку с мусорным баком. И после проверки «пути» добавленной ссылки, я заметил, что она смотрит в совершенно другое место.

0 голосов
/ 20 сентября 2011

Взгляните на внутреннее исключение. Это часто происходит, когда статический конструктор вызывает исключение.

...