Не удалось загрузить файл или сборку Magick.Net при развертывании Elastic Beanstalk
Я получаю следующую ошибку при развертывании моего проекта в Amazon Elastic Beanstalk:
Could not load file or assembly 'Magick.NET-x86.DLL' or one of its dependencies. The specified module could not be found.
У меня есть много других DLL в папке bin, и эта единственная, которая выдает эту ошибку. Насколько я знаю, DLL не имеет никаких зависимостей.
Я не получаю эту ошибку при локальном запуске, и dll установлен на "Не копировать" в дополнительных параметрах, как и другие библиотеки DLL.
Я использую ASP.NET 4.5 / C# Project
Запуск обходчика зависимостей на сервере EC2 Elastic Beanstalk я получаю:
Как я могу загрузить эту dll при запуске моего проекта на Elastic Beanstalk?
3 ответа
The specified module could not be found.
Обычно это означает, что указанный модуль (Magick.NET-x86.DLL) не является проблемой, а скорее не может быть найдена зависимость Magick.NET-x86.DLL. В частности, не основанная на CLR зависимость.
Лучший способ определить нативные зависимости - это просмотрщик зависимостей. Вы можете найти его здесь: http://www.dependencywalker.com/
Откройте программу Magick.NET-x86.DLL в программе depen.exe и посмотрите на зависимости. Если вы не можете сделать это на экземпляре Amazon, вам придется сделать это на вашем компьютере. Убедитесь, что все зависимости расположены и находятся в той же папке, что и приложение.EXE
Я сделал это со следующим файлом, загруженным с их сайта: Magick.NET-6.8.8.701-Q16-x64-net40-client
Судя по зависимостям, которые я вижу, когда я делаю это, наиболее вероятным виновником является отсутствие среды выполнения C++ 2012. Обратите внимание, что это среда выполнения для последней 64-битной DLL, которую я скачал с их сайта. Если вы используете более старую версию, это может быть другое время выполнения.
Чтобы узнать правильное время выполнения, Google C++ DLL имя. Например, MSVCP110.dll == 2012
http://www.microsoft.com/en-us/download/details.aspx?id=30679
Magick.NET Требуется VC 2012 Runtime для установки. (Распространяемый Visual C++ для Visual Studio 2012)
Кроме того, после установки Visual C++ Redistributable for Visual Studio 2012 на сервере требуется перезагрузка.
Вы можете автоматизировать установку необходимых пакетов с помощью файла конфигурации.ebextensions, как указано здесь