После публикации ASP.NET MVC приложения получил ошибку:
Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Причем локально ошибка не повторялась
Как выяснить причину
После исследования в интернете оказалось, что эта ошибка обычно возникает если
в проекте появились новые типы (сборки), которые не были подгружены при публикации.
чтобы выяснить, чего именно не хватает приложению, я добавил такой дополнительный код на страницу обработки ошибок
(у меня в приложении была настроена специальная страница обработки ошибок, поэтому код я написал сразу в ней и код на razor. но вы можете адаптировать этот код в чистый C# ):
@if (Model.Exception is ReflectionTypeLoadException)
{
var rtlexc = Model.Exception as ReflectionTypeLoadException;
if (rtlexc.LoaderExceptions != null) {
foreach (var rtlexcitem in rtlexc.LoaderExceptions)
{
<div>
@rtlexcitem.Message
</div>
}
}
}
Этот код вывел меня на сборку которая не была подгружена в проект
Оказывается члены команды добавили новую длл-ку, но не установили ей свойство копироваться локально.
Как решать
Проект/References/Нужная сборка/Свойства/Copy Local = true
Смотрите также
тема на stackoverflow
Error message 'Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.'
Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Причем локально ошибка не повторялась
Как выяснить причину
После исследования в интернете оказалось, что эта ошибка обычно возникает если
в проекте появились новые типы (сборки), которые не были подгружены при публикации.
чтобы выяснить, чего именно не хватает приложению, я добавил такой дополнительный код на страницу обработки ошибок
(у меня в приложении была настроена специальная страница обработки ошибок, поэтому код я написал сразу в ней и код на razor. но вы можете адаптировать этот код в чистый C# ):
@if (Model.Exception is ReflectionTypeLoadException)
{
var rtlexc = Model.Exception as ReflectionTypeLoadException;
if (rtlexc.LoaderExceptions != null) {
foreach (var rtlexcitem in rtlexc.LoaderExceptions)
{
<div>
@rtlexcitem.Message
</div>
}
}
}
Этот код вывел меня на сборку которая не была подгружена в проект
Оказывается члены команды добавили новую длл-ку, но не установили ей свойство копироваться локально.
Как решать
Проект/References/Нужная сборка/Свойства/Copy Local = true
Смотрите также
тема на stackoverflow
Error message 'Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.'
Комментариев нет:
Отправить комментарий