3

将我的项目部署到 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.

我在 bin 文件夹中有许多其他 DLL,而这是唯一一个引发此错误的 DLL。据我所知,DLL 没有任何依赖关系。

在本地运行时我没有收到此错误,并且 dll 在高级选项中设置为“不复制”,就像其他 DLL 一样。

我正在运行 ASP.NET 4.5 / C# 项目

在 Elastic Beanstalk 的 EC2 服务器上运行依赖walker,我得到:

在此处输入图像描述

在 Elastic Beanstalk 上启动我的项目时,如何加载此 dll?

4

3 回答 3

5

The specified module could not be found.

这通常意味着指定的模块 (Magick.NET-x86.DLL) 不是问题,而是找不到 Magick.NET-x86.DLL 的依赖项。具体来说,非基于 CLR 的依赖项。

确定本机依赖关系的最佳方法是使用依赖关系查看器。你可以在这里找到一个:http: //www.dependencywalker.com/

打开depends.exe程序中的Magick.NET-x86.DLL,查看依赖关系。如果您无法在亚马逊实例上执行此操作,则必须在您的 PC 上执行此操作。确保所有依赖项都位于应用程序 .EXE 所在的同一文件夹中

我使用从他们的网站下载的以下文件执行此操作:Magick.NET-6.8.8.701-Q16-x64-net40-client

根据我在执行此操作时看到的依赖关系,最可能的罪魁祸首是没有 C++ 2012 运行时。请注意,此运行时适用于我从他们的网站下载的最新 64 位 DLL。如果您使用的是旧版本,则可能是不同的运行时。

要找出正确的运行时,请搜索 c++ DLL 名称。例如 MSVCP110.dll == 2012

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

于 2014-03-07T21:22:04.190 回答
3

Magick.NET 需要安装 VC 2012 Runtime。(Visual C++ Redistributable for Visual Studio 2012)

此外,在服务器上安装 Visual C++ Redistributable for Visual Studio 2012 后,需要重新启动。

于 2014-09-30T09:30:28.747 回答
1

您可以使用此处提到的 .ebextensions 配置文件自动安装所需的软件包

于 2014-12-06T13:50:17.523 回答