2

Assembly.LoadFromアプリケーションベースパスの外部に格納されているアセンブリ(A)を介してロードしています。ロードするアセンブリは、同じディレクトリにある別の.netアセンブリ(B)を参照します。

Aアセンブリのいくつかのメソッドを使用しようとすると、Fusionログは、システムがA.dllの親ディレクトリではなくアプリケーションベースディレクトリからB.dllを読み込もうとしていることを示しています。

にリスナーを追加しました。これは、送信者が「コンテキストポリシーがありません。」というメッセージを持ち、プロパティがに設定されてAppDomain.CurrentDomain.AssemblyResolveいる場合に呼び出されます。AppDomainResolveEventArgs.RequestingAssemblynull

LoadFrom親ディレクトリでアセンブリの依存関係を検索することを許可するべきではありませんか?

4

2 に答える 2

3

はい、そうすべきだと思いますが、leppieは正しいですが、そうではありません。これは、アセンブリプロービングシーケンスに関する詳細なMSDN記事です。まったく同じ問題が発生したことが何度かあり、AssemblyResolveイベントを使用することが唯一の方法です。

于 2012-02-05T05:59:47.860 に答える
0

まあ、実際にはそうすべきです!そして、そうです。見る:

CLRは、GACとappbaseディレクトリを使用してアセンブリ(A)の依存関係を解決しようとしますが、ロード元のフォルダ(A)も調べます。

于 2019-01-19T10:58:49.677 に答える