동일한 프로세스 내에서 동일한 dll의 두 가지 버전을로드하고 싶습니다. 동시에 나는 그들 중 누구도 GAC에 배치하는 것을 피하고자한다.동일한 DLL의 여러 버전을 GAC에 넣지 않고로드하십시오.
아이디어가 있으십니까?
감사합니다, Krikor
동일한 프로세스 내에서 동일한 dll의 두 가지 버전을로드하고 싶습니다. 동시에 나는 그들 중 누구도 GAC에 배치하는 것을 피하고자한다.동일한 DLL의 여러 버전을 GAC에 넣지 않고로드하십시오.
아이디어가 있으십니까?
감사합니다, Krikor
예, 수동으로 어셈블리를로드해야하는 것처럼 보입니다.
내가 찾은 해결책 중 하나는 appDomain의 AssemblyResolve 이벤트를 구독하는 것이 었습니다. 이 이벤트는 어셈블리를 찾을 수 없을 때 발생하며 수동으로 제공 할 수 있습니다.
AppDomain.CurrentDomain.AssemblyResolve + = MyResolveEventHandler;
정적 조립 MyResolveEventHandler (개체를 보낸 사람, ResolveEventArgs 인수) { 반환 Assembly.LoadFrom이 (@ "OldAsm \ Asm.dll"); }
<안녕, 시작 = "2">코드를 작성하지 않고도 GAC에 아무 것도 넣지 않고 올바른 참조를 해결할 수있는 방법을 찾고 있습니다. 누군가가 길을 찾으면 그것을 게시하십시오.
감사합니다.
Activator.CreateInstance로. 예제를 보려면 msdn을 확인하십시오.
답변을 주셔서 감사합니다.하지만 반성을 피하려고합니다. 내가하고 싶은 것은 프레임 워크가 올바른 파일로 해석되도록하는 것입니다. 나는 그 dll에 여러 유형의 톤이 있고 반영을 사용하면 구현하는 데 많은 비용이 듭니다. – Krikor
로드 ... 메서드를 사용하여 DLL을 직접로드해야합니다. IO에 비해 리플렉션은 중요하지 않습니다. 반사는 대부분의 사람들이 그것을 측정하지 않기 때문에 "나쁜"평판을 가지고 있습니다. 가능한 한 피하십시오, 그렇습니다. 그러나 그것이 정답 일 때 완전히 피하지 마십시오. –