Could not load file or assembly Magick.Net on Elastic Beanstalk Deployment

匿名 (未验证) 提交于 2019-12-03 02:03:01

问题:

I am getting the following error when deploying my project to 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.

I have many other DLLs in the bin folder, and this one the only one that throws this error. The DLL doesn't have any dependencies as far as I know.

I don't get this error when running locally and the dll is set to "Do not copy" in the advanced options, like the other DLLs.

I am running ASP.NET 4.5 / C# Project

Running dependency walker on the EC2 server of the Elastic Beanstalk I get:

How can I make this dll load when launching my project on Elastic Beanstalk?

回答1:

The specified module could not be found.

This normally implies that the module specified (Magick.NET-x86.DLL) isn't the issue, but rather a dependency of Magick.NET-x86.DLL cannot be found. Specifically, a non CLR based dependency.

The best way to determine native dependencies is with a dependency viewer. You can find one here: http://www.dependencywalker.com/

Open the Magick.NET-x86.DLL in the depends.exe program and look at the dependencies. If you can't do this on the amazon instance, you'll have to do it on your PC. Make sure that all dependencies are located, and exist within the same folder as the application .EXE

I did this with the following file downloaded from their website: Magick.NET-6.8.8.701-Q16-x64-net40-client

Based on the depencies I see when I do this, the most likely culprit is not having the C++ 2012 runtime. Note that this runtime is for the latest 64bit DLL i downloaded from their website. If you are using an older version it may be a different runtime.

To find out the correct runtime, google the c++ DLL name. E.g. MSVCP110.dll == 2012

http://www.microsoft.com/en-us/download/details.aspx?id=30679



回答2:

Magick.NET Needs VC 2012 Runtime to be installed. (Visual C++ Redistributable for Visual Studio 2012)

Also once Visual C++ Redistributable for Visual Studio 2012 is installed on the server, it requires a restart.



回答3:

You can automate installation of required packages with .ebextensions config file as mentioned here



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!