Не удалось загрузить файл или сборку 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, как указано здесь

Другие вопросы по тегам