Подтвердить что ты не робот

Как устранить неполадку: System.TypeLoadException?

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

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

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

Подробнее:

Метод испытания MyErrorHandler.Test.MyTest.Parse_RecievesValidMessage_ReturnsArray исключение: System.TypeLoadException: не удалось загрузить тип 'MyTestNameSpace' из сборки 'MyTestAssemblyName.Test, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = Somenumber.

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

4b9b3361

Ответ 1

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

EDIT: также убедитесь, что спутниковые сборки (на которые ссылается сборка, которую загрузчик типа не загружает) доступны.

Ответ 2

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

Ответ 3

Вы можете попробовать включить "Break, когда исключение выбрано" из Debug → Tools → Exceptions и щелкнуть все флажки в столбце "Бросок". Когда вы повторно запускаете свой тест, вы должны быть в состоянии видеть, где именно это исключение бросается.

Ответ 4

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

Ответ 5

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

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

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