Could not load file or assembly Magick.Net on Elas

2019-01-28 10:52发布

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:

enter image description here

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

3条回答
▲ chillily
2楼-- · 2019-01-28 11:24

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

查看更多
戒情不戒烟
3楼-- · 2019-01-28 11:30

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

查看更多
smile是对你的礼貌
4楼-- · 2019-01-28 11:46

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.

查看更多
登录 后发表回答