C# .net 3.5 응용 프로그램을 빌드 중입니다.DLL을 동적으로로드 할 때 메소드를 찾을 수 없습니다.
나는 exe 인 DLL을 참조하는 'MainApp을'이 'CommonDll'
CommonDll 동적으로 다른 DLL 'LoadedDll'을로드하고 동적 방법이라고 FUNC()를 호출합니다.
'LoadedDll'참조합니다 'CommonDll'는 'CommonDll'에
FUNC()를 호출하는 메소드 foo에()가 존재한다.
func()
{
foo();
}
그래서, 우리가 지금까지 무엇을 :
MainApp ==> CommonDll ==이 동적으로 ==> LoadedDll
LoadedDll ==> CommonDll.
foo() 메서드를 부울 인수로 변경하기 전까지는 모든 것이 잘 작동했습니다. foo (bool val); 및
func()
{
foo(true);
}
에도 'LoadedDll'에서 FUNC()를 cheanged 나는 버전 1.1
에서 MainApp (참조 이전 CommonDll) 버전 1.0 및 LoadedDll (참조 새로운 CommonDll)에 대한이 어떤 이유로 부울 인수를 가져 오는 foo를 찾을 수 없다는 foo 메소드의 "MethodNotFound Excepion"을 얻습니다.
왜 이런 일이 발생합니까? LoadedDll은 업데이트 된 CommonDll에 대한 정적 참조를 사용하고 있으므로 해당 메소드를 찾을 수없는 이유는 무엇입니까?
또한 예외적으로 동적으로로드되는 'func()'메서드를 찾을 수 없다는 것은 아니지만 foo 메서드를 찾을 수 없다고 말합니다.
는 편집 :
나는 GAC에 DLL을 찾았지만 메모리에 이미 오래된 DLL 대신 새로운 하나의로드 할 또 다른 이유가있다,이 없다?
dll 로딩 코드를 표시하십시오. –
이것들을 사용하기 위해 당신의 리플렉션을 사용합니까? 그렇다면 매개 변수 객체 배열을 invoke 메서드에 전달 했습니까? – LukeHennerley
응용 프로그램을 다시 빌드하십시오. –