понедельник, 28 сентября 2015 г.

.NET приложение. Ошибка: Unable to load one or more of the requested types...

После публикации 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.'




Комментариев нет:

Отправить комментарий