2012-02-02 3 views
2

Assembly.LoadFrom을 통해로드하는 중입니다. 어셈블리 (A)는 응용 프로그램 기본 경로 외부에 저장됩니다. 내가로드하는 어셈블리는 동일한 디렉토리에서 다른 .net 어셈블리 (B)를 참조합니다.LoadFrom 및 컨텍스트

A 어셈블리의 일부 메서드를 사용하려고하면 Fusion 로그에서 시스템이 A.dll의 부모 디렉터리가 아닌 응용 프로그램 기본 디렉터리에서 B.dll을로드하려고한다는 것을 알 수 있습니다.

나는 ". 어떤 상황에 맞는 정책이 없다"보낸 사람 AppDomain라는 메시지를 갖는 호출 AppDomain.CurrentDomain.AssemblyResolve에 리스너를 추가하고, ResolveEventArgs.RequestingAssembly 속성은 null로 설정합니다.

LoadFrom은 상위 디렉토리에서 어셈블리의 종속성을 검색 할 수 있습니까?

+2

아니요, 불행히도 그렇게 작동하지 않습니다 (불행히도). 기본/네이티브 로더를 인터셉트하는 것이 유익한 비슷한 문제가 있습니다. – leppie

답변

3

예, 필자는 그것이 꼭 맞아야한다고 생각하지만, 정확하지는 않습니다. assembly probing sequence에 대한 자세한 MSDN 문서는 다음과 같습니다. 정확히 동일한 문제가 있었고 AssemblyResolve 이벤트를 사용하는 것이 유일한 방법 인 여러 번있었습니다.