0

次のコードを機能させようとしています(逆コンパイルされました):

foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
{
    if ((!assembly.FullName.StartsWith("System") && !assembly.FullName.StartsWith("Microsoft")) && !assembly.FullName.StartsWith("mscorlib"))
       {
           list.Add(assembly.FullName);//keep the name of assembly.
       }
}
foreach (string assemblyStirng in list)
{
     var assembly = Assembly.Load(assemblyString);//here FileNotFoundException is thrown.
}

それはどのように可能ですか?DLL は既にドメインにあり、Assembly.Load はそれを返す必要があります。

4

2 に答える 2

2

Fusion ログ ビューでアセンブリ ロード ログをオンにします: Fusion ログ ビュー

見つからない理由についての詳細な情報を教えてくれます。

いくつかの理由として、アプリケーション ディレクトリ以外の場所からロードされたか、同じ dll の異なるバージョンが見つかったことが考えられます。

于 2013-10-23T13:04:06.743 に答える