Reflectionから動的にアセンブリを読み込もうとしています。私はリフレクションを使用してsomeExtentionを読み込むことができますResolveEventArgs.RequestingAssemblyがNullです
project
\-- BIN
|-- myApp.exe
|-- SOMEEXTENTION1
| |-- someExtention1.dll
| \-- itsDependency1.dll
|
|-- SOMEEXTENTION2
|-- someExtention2.dll
\-- itsDependency2.dll
:私はこのようなフォルダ構造を持っています。実行時にsomeExtentionがitsDependencyを探す際に問題が発生します。ドットネットはBINフォルダにあります。それはそこに見つかりません。私はこのイベントをトラップしています
のAppDomainのに、AssemblyResolveイベントが発生します...。 ResolveEventArgsには、ロードする必要があるアセンブリの名前が表示されます。問題は、私はRequestingAssemblyを取得しないということです。 ResolveEventArgsのそのプロパティは常に空です。私は、独自のEXTNフォルダで直接見ることができるように、要求しているアセンブリが必要です。それがなければ私はすべてのEXTNフォルダを見る必要がありますが、私の場合はかなり大きくなる可能性があります。
RequestingAssemblyは、このMSDNの記事によると物理ファイルへのパスが含まれているプロパティの場所があります。 this記事また、このプロパティがNothingの場合の状況。私はそこで議論されたロードコンテキストを理解していません。
すべてのヘルプはかなりのだろう...
あなたは正しいです。 LoadFrom()はRequestingAssemblyプロパティを持つイベントを生成しますが、 'Assembly.Load(AssemblyName.GetAssemblyName(path)) 'は実行しません。私は理由を知ることはできませんが、私はスイッチしなければなりませんでした – ekkis
この行は、「動的にアセンブリを読み込むときに、フォルダ名がアセンブリ名と一致してはならない」という時間を節約しました。また、このシナリオでは、リゾルバイベントでRequestingAssemblyがnullであることに気付きました。マイクロソフトでは、LoadFrom()のmsdnページでこれについて警告する必要があります。 – Makolyte