どのアセンブリがどの依存関係をロードしているかを発見します(実行時に)
-
27-10-2019 - |
質問
実行時にロードされる特定の依存関係をトリガーしているアセンブリを発見する最も簡単な方法は何ですか?アプリケーションの一部としてロードされる100以上のアセンブリの1つで、どこかに古いアセンブリへの迷いの参照があります。
使用 fuslogvw 古いアセンブリがロードされているのを見ることができますが、ログはどのアセンブリがロードされたかを教えてくれません。私は使用しました 確認してください これにより、一次アセンブリの依存関係を閲覧し、木を探索することができますが、これらはすべて問題ありません。
したがって、それは実行時に動的にロードされるアセンブリ、またはどこかで構成ファイルでなければなりません。しかし、私は私の人生のためにそれを見つけることができません。
これを行うためのより賢い方法があるのだろうかと思っていましたか?
解決
おそらくあなたは購読することができます AssemblyResolve すべてのアプリドメインでのイベント(多すぎない場合)。 ResolveEventargsには、これのための特別なフィールドが含まれています - ResolveEventargs.requestingAssembly
他のヒント
アセンブリを削除(または名前変更)して、プログラムがロードしようとする時点で例外がスローされているかどうかを確認してみませんか?スタックトレースには、呼び出しアセンブリからのメソッドへの参照を含める必要があります。
所属していません StackOverflow