C#.net3.5アプリケーションを構築しています。
dll「CommonDll」を参照するexe「MainApp」があります
CommonDllは、別のdll'LoadedDll'を動的にロードし、func()と呼ばれるメソッドを動的に呼び出します。
「LoadedDll」は「CommonDll」を参照します
'CommonDll'には、func()が呼び出しているメソッドfoo()があります。
func()
{
foo();
}
だから、私たちがこれまでに持っているもの:
MainApp ==> CommonDll == Dynamicly ==> LoadedDll
LoadedDll==>CommonDll。
メソッドfoo()を変更してブール引数を取得するまで、すべてが正常に機能しました。foo(bool val); 'LoadedDll'のfunc()も変更しました
func()
{
foo(true);
}
バージョン1.0にはMainApp(古いCommonDllを参照)があり、バージョン1.1にはLoadedDll(新しいCommonDllを参照)があります。
何らかの理由で、メソッドfooに「MethodNotFoundExcepion」が表示され、ブール引数を取得するfooが見つからないと表示されます。
なぜこうなった?LoadedDllは、更新されたCommonDllへの静的参照を使用しているのに、なぜそのメソッドが見つからないのでしょうか。
また、例外は、動的にロードされる'func()'メソッドが見つからないことを示していませんが、fooメソッドが見つからないことを示しています。
編集:
GACでdllを探しましたが、そこにありません。すでにメモリにある古いdllが新しいものではなく読み込まれる別の理由がありますか?