문제

동일한 프로세스 내에서 동일한 DLL의 두 가지 버전을로드하고 싶습니다. 동시에 나는 그 중 하나를 GAC에 배치하지 않기를 원합니다.

어떤 아이디어?

감사합니다, Krikor

도움이 되었습니까?

해결책

예, 어셈블리를 수동으로로드 해야하는 것 같습니다.

내가 찾은 해결책 중 하나는 AppDomain의 AssemblyResolve 이벤트를 구독하는 것이 었습니다. 이 이벤트는 어셈블리를 찾을 수 없을 때 제기되며 수동으로 제공 할 수 있습니다.

  1. 이와 같은 이벤트 핸들러를 다시 표시하십시오

appdomain.currentdomain.assemblyresolve += myresolveventhandler;

정적 어셈블리 MyresolveVenthandler (Object Sender, ResolveVentArgs Args) {return Assembly.Loadfrom (@"Oldasm asm.dll"); }

  1. 특정 코드를 사용하는 코드에 도달하면 .NET 프레임 워크가 어셈블리를로드하려고 시도하면 충돌하여 핸들러 (MyresolveVenthandler)를 호출합니다.

나는 코드를 작성하지 않고도 GAC에 아무것도 넣지 않고 올바른 참조를 해결할 수있는 방법을 계속 찾고 있습니다. 누군가가 방법을 찾으면 게시하십시오.

감사

다른 팁

Activator.CreateInstance. MSDN에서 예제를 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top