У меня была эта проблема с использованием AutoFac. В основном у меня была эта строка кода, и я получал ту же ошибку, что и вы:
return builder.Build();
Исключение не говорит вам ничего, как вы знаете! Таким образом, вы должны включить «LoaderExceptions», как говорится. Я пришел с этим, который работает очень хорошо и сразу указал мне на DLL, которая отсутствовала:
try
{
return builder.Build();
}
catch (Exception ex)
{
if (ex is ReflectionTypeLoadException)
{
var typeLoadException = ex as ReflectionTypeLoadException;
var loaderExceptions = typeLoadException.LoaderExceptions;
throw new AggregateException(typeLoadException.Message, loaderExceptions);
}
throw;
}
Теперь в исключении я получаю кучу полезной информации, но самое главное, ту DLL, которую мне не хватало: "(Внутреннее исключение # 0) System.IO.FileNotFoundException: Не удалось загрузить файл или сборку" System.Web.Mvc, версия = 3.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 'или одна из его зависимостей. Система не может найти указанный файл.
Имя файла: 'System.Web.Mvc, версия = 3.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' "
Я обнаружил, что на System.Web.MVC ссылается проект, на который ссылается этот проект. Таким образом, этот проект напрямую не нуждался, но одна из его зависимостей нуждалась.
Поместите такой пример в свой код, и я думаю, вы избавите себя от большой боли.
Приветствие.