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 が「コピーしない」に設定されています。

ASP.NET 4.5 / C# プロジェクトを実行しています

Elastic Beanstalk の EC2 サーバーで依存関係ウォーカーを実行すると、次のようになります。

ここに画像の説明を入力

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 を開き、依存関係を調べます。Amazon インスタンスでこれを行うことができない場合は、PC で行う必要があります。すべての依存関係が配置され、アプリケーションの .EXE と同じフォルダー内に存在することを確認してください。

Web サイトからダウンロードした次のファイルを使用してこれを行いました: Magick.NET-6.8.8.701-Q16-x64-net40-client

これを行ったときに確認した依存関係に基づいて、最も可能性の高い原因は C++ 2012 ランタイムを持っていないことです。このランタイムは、Web サイトからダウンロードした最新の 64 ビット DLL 用であることに注意してください。古いバージョンを使用している場合は、別のランタイムである可能性があります。

正しいランタイムを見つけるには、c++ DLL 名をググってください。例: MSVCP110.dll == 2012

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

于 2014-03-07T21:22:04.190 に答える
1

こちらで説明されているように、.ebextensions 構成ファイルを使用して、必要なパッケージのインストールを自動化できます。

于 2014-12-06T13:50:17.523 に答える