2011-01-31 19 views
1

実行時に特定の依存関係がロードされるアセンブリを検出する最も簡単な方法は何ですか?私は、アプリケーションの一部としてロードされる100以上のアセンブリのいずれかの古いアセンブリのどこかに迷いの参照を持っています。実行時にどの依存関係がロードされているかを確認する(実行時に)

使用するFUSLOGVW古いアセンブリがロードされているのを確認できますが、ログによってどのアセンブリがロードされたのかがわかりません。私はCheckASMを使用しました。これにより、プライマリアセンブリの依存関係を参照し、ツリーを探索することができますが、これらはすべて問題ありません。

したがって、実行時に動的にロードされるアセンブリ、またはどこかの構成ファイルでなければなりません。しかし私は私の人生のためにそれを見つけることができません。

これを行うよりスマートな方法があるのだろうかと疑問に思っていましたか?

答えて

1

多すぎない場合は、すべてのアプリドメインでAssemblyResolveイベントを購読することができます。 ResolveEventArgsにはこの特別なフィールドが含まれています - ResolveEventArgs.RequestingAssembly

+0

はい、イベントをトリガするためにDLLを削除するだけです。コールスタックがどのように呼び出されたかを見てください。 –

+0

ありがとう、以前これを見逃していなかった - トリックをした –

1

アセンブリを削除(または名前を変更)して、プログラムがロードしようとした時点で例外がスローされるかどうかを確認する方法はありますか?スタックトレースには、呼び出し側アセンブリのメソッドへの参照が含まれている必要があります。

+0

ありがとうMark、これは戦闘の半分でした! –

関連する問題