29

IKVMを使用して変換された Java ライブラリを使用するプロジェクトがあります。作成した DLL とすべての可能な IKVM DLL をプロジェクトへの参照として追加しましたが、実行すると次のランタイム エラーが発生します。

System.IO.FileNotFoundException : ファイルまたはアセンブリ 'core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

このエラーをデバッグする方法がよくわかりません。どのタイプが欠落しているかを正確に知る方法はありますか? 説明から、これは生成された DLL (Java lib から) だと思いますが、参照として適切に追加しました。

私は他に何を間違えましたか?

4

6 に答える 6

23

Fusion Log Viewerを使用して、.NET アプリでのアセンブリの読み込みに関する問題をデバッグできます。

また、プロセス モニターは、一般的なファイル ロードの問題を特定するのに非常に役立ちます。

于 2011-01-05T15:52:51.787 に答える
9

依存関係ウォーカーとフュージョン ログ ビューアをただ鳴らすだけでは、ネイティブ コードとマネージド コードを一緒に使用したり、ネイティブ コードを動的にロードしたりするアプリケーションではうまく機能しません。これらのシナリオをカバーするプロセスモニターを使用して、欠落している (または無効なアクセス許可) アセンブリエラーを解決する方法を段階的に説明する良い投稿を次に示します。

Process Monitor でファイルまたはアセンブリを読み込めませんでした、またはその依存関係エラーの 1 つをデバッグできませんでした

この投稿には、このタスクの一部を自動化するツールも含まれています

于 2013-01-20T14:35:41.457 に答える
5

これは、Fusion Log Viewer (Microsoft SDK で利用可能) を使用して診断できます。管理者で起動し、設定でログを有効にします。

参照の読み込みに関するすべての情報 (およびそのすべての参照) をログに記録します。欠落している参照と、それを検索した場所を明示的に示します。

Fusion ログ ビューアーの MSDN

于 2011-01-05T15:54:26.040 に答える
2

特定の PE ファイル (dll、exe、ocx...) の依存関係を確認できるDependency Walkerというプログラムがあります。

このエラーは非常に厄介で、デバッグが非常に困難です。dll が存在すること、およびこの dll が持つすべての依存関係があることを確認する必要があります。このキーポイントは、通常、頭痛が始まる場所です。

于 2011-01-05T15:46:34.493 に答える
0

依存関係ウォーカーは、ネイティブ PE ファイルに必要なすべての DLL を静的に解決し、欠落している依存関係にフラグを立てます。一方、Fusion Log Viewer は、実行時にマネージド コード内のアセンブリ バインディングの問題を検出します。ネイティブ DLL を動的にロードするマネージ .Net コードの場合、これらのツールでは不十分です。

Process Monitor を使用して「ファイルまたはアセンブリを読み込めませんでした」問題をデバッグする方法に関するブログ投稿は次のとおりです

于 2016-12-25T08:09:09.400 に答える
0

ProcessMonitor (Sysinternals Suite から)を使用すると、例外がスローされる直前に、プロセスが探している DLL を確認できます。

于 2011-01-05T15:55:34.000 に答える